自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

重學(xué)設(shè)計(jì)模式之裝飾者模式

開(kāi)發(fā) 架構(gòu)
今天面試被刷了,為啥呀?有什么問(wèn)題沒(méi)有回答好嗎?

[[354887]]

本文轉(zhuǎn)載自微信公眾號(hào)「碼個(gè)蛋」,作者陳宇明 。轉(zhuǎn)載本文請(qǐng)聯(lián)系碼個(gè)蛋公眾號(hào)。 

 

代碼

抽象基類

  1. public abstract class 英雄 { 
  2.   public abstract int 攻擊() 
  3.   public abstract int 冷卻() 
  4.    ........ 

實(shí)現(xiàn)基類

  1. public class 李白 extends 英雄 { 
  2.    @Override 
  3.    public int 冷卻(){ 
  4.       return 5; 
  5.   } 
  6.    ........ 

Buff 抽象類

  1. public abstract Buff extends 英雄 { 
  2.    public abstract int 攻擊() 
  3.   public abstract int 冷卻() 
  4.    ........ 

不同 Buff 的實(shí)現(xiàn)類

  1. public 紅buff extends Buff { 
  2.  
  3.    private 英雄 英雄; 
  4.    public 紅buff(英雄 英雄){ 
  5.         this.英雄 = 英雄; 
  6.     } 
  7.      @Override 
  8.    public int 攻擊() { 
  9.      return 英雄.攻擊() + 紅buff額外攻擊; 
  10.    } 
  11.    ......... 
  12.   
  13. public 藍(lán)buff extends Buff { 
  14.  
  15.    private 英雄 英雄; 
  16.    public 藍(lán)buff(英雄 英雄){ 
  17.         this.英雄 = 英雄; 
  18.     } 
  19.  
  20.     @Override 
  21.    public int 冷卻() { 
  22.      return 英雄.冷卻()  + 藍(lán)buff額外減少的冷卻值; 
  23.    } 
  24.    ......... 
  25.  

客戶端

  1. public class Client { 
  2.     public static void main(String[] args) { 
  3.         // 沒(méi)有buff的英雄 
  4.         英雄 無(wú)buff李白 = new 李白(); 
  5.         
  6.         // 打了紅 
  7.         紅buff 紅buff李白 = new 紅buff(無(wú)buff李白); 
  8.  
  9.         // 再來(lái)個(gè)籃 
  10.         籃buff 紅藍(lán)buff李白 = new 籃buff(紅buff李白); 
  11.  
  12.     } 

注意:以上代碼塊用中文編寫類名、變量名是為了讓大家更好的理解,在實(shí)戰(zhàn)過(guò)程中記得替換成相對(duì)應(yīng)的英文。

總結(jié)

出自《Head first 設(shè)計(jì)模式》

 

責(zé)任編輯:武曉燕 來(lái)源: 碼個(gè)蛋
相關(guān)推薦

2023-09-04 13:14:00

裝飾器設(shè)計(jì)模式

2022-03-25 11:01:28

Golang裝飾模式Go 語(yǔ)言

2023-12-13 13:28:16

裝飾器模式Python設(shè)計(jì)模式

2021-01-21 05:34:14

設(shè)計(jì)模式建造者

2012-05-16 17:15:04

Java設(shè)計(jì)模式

2021-07-08 11:28:43

觀察者模式設(shè)計(jì)

2010-05-06 08:44:37

調(diào)解者模式

2022-11-26 00:00:06

裝飾者模式Component

2022-01-19 08:21:12

設(shè)計(jì)裝飾器模式

2020-10-20 13:33:00

建造者模式

2020-11-05 09:38:07

中介者模式

2021-10-26 00:21:19

設(shè)計(jì)模式建造者

2024-02-23 12:11:53

裝飾器模式對(duì)象

2020-08-21 07:23:50

工廠模式設(shè)計(jì)

2020-10-26 08:45:39

觀察者模式

2021-06-09 08:53:34

設(shè)計(jì)模式策略模式工廠模式

2012-02-29 09:41:14

JavaScript

2015-09-08 13:39:10

JavaScript設(shè)計(jì)模式

2012-01-13 15:59:07

2021-12-24 07:50:45

責(zé)任鏈模式設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)