设计模式之装饰者模式
阿里云国内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 |