设计模式之装饰者模式

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


前提:装饰者和被装饰者类均继承自统一接口。装修者模式不控制被装饰者类,只是在方法属性上的叠加。增强对象行为。(ps:好久没更新,不知道更啥,先发着设计模式。。)


 



1 公用接口:



public interface Superman {


String getWeapon(); //武器


}


 



2 被装饰者类(咸蛋超人-刚出山的没装备)



public class Ultraman implements Superman{


String weapon = "裤衩"; //刚进新手村,身上只有一件绑定衣服(裤衩)





public String getWeapon(){


return weapon;


}


}


 



3 抽象装饰者(装备的设计图)



public abstract class WeaponDecorator implements Superman{ //定义武器类抽象装饰者


//定义武器装饰方法


getWeapon();


}



4 具体装饰者(装备的建造工具)



public class Stealth extends WeaponDecorator{  //武器->隐形衣


Superman superman;


String weapon = "隐形衣"; //这是件隐形衣





public Stealth(Superman superman){


this.superman = superman;


}





getWeapon(){


return weapon+","+superman.Weapon();


}


}


5 调用:



public class Test {


public static void main(String[] args) {


Superman man = new Ultraman();


man = new Stealth(man);


现在装备有:隐形衣,裤衩”


}


}

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6