当前位置:首页 > 域名

重学设计模式之装饰者模式

本文转载自微信公众号「码个蛋」,重学之装作者陈宇明 。设计饰转载本文请联系码个蛋公众号。模式模式 

 

代码

抽象基类

public abstract class 英雄 {    public abstract int 攻击()   public abstract int 冷却()    ........ } 

实现基类

public class 李白 extends 英雄 {     @Override    public int 冷却(){        return 5;   }    ........ } 

Buff 抽象类

public abstract Buff extends 英雄 {     public abstract int 攻击()   public abstract int 冷却()    ........ } 

不同 Buff 的重学之装实现类

public 红buff extends Buff {     private 英雄 英雄;    public 红buff(英雄 英雄){          this.英雄 = 英雄;     }      @Override    public int 攻击() {       return 英雄.攻击() + 红buff额外攻击;    }    ......... } public 蓝buff extends Buff {     private 英雄 英雄;    public 蓝buff(英雄 英雄){          this.英雄 = 英雄;     }     @Override    public int 冷却() {       return 英雄.冷却()  + 蓝buff额外减少的源码库冷却值;    }    ......... } 

客户端

public class Client {      public static void main(String[] args) {          // 没有buff的英雄         英雄 无buff李白 = new 李白();         // 打了红         红buff 红buff李白 = new 红buff(无buff李白);         // 再来个篮         篮buff 红蓝buff李白 = new 篮buff(红buff李白);     } } 

注意:以上代码块用中文编写类名、变量名是设计饰为了让大家更好的云南idc服务商理解,在实战过程中记得替换成相对应的模式模式英文。

重学之装

总结

重学之装

出自《Head first 设计模式》

重学之装服务器托管

分享到:

滇ICP备2023006006号-16