设计模式之装饰模式
装饰模式
动态的给一个对象增加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活
person类:
package com.hml.decorator; public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void show() { } }
衣服类
package com.hml.decorator; public class Finery extends Person { protected Person component; public void decorate(Person component) { this.component = component; } public void show() { if (component != null) { component.show(); } } }
T袖类
package com.hml.decorator; public class TShirts extends Finery { public void show() { System.out.println("T袖"); } }
大裤衩类:
package com.hml.decorator; public class BigTrouser extends Finery { public void show() { System.out.println("大裤衩"); } }
接下来,我们就可以创建一个对象,然后用T袖装饰,在用大裤衩装饰。
类图:
装饰模式的特点
装饰模式是为已有功能动态的添加更多的功能的一种方式,把类中的装饰功能从类中搬移去除,这样可以简化原有的类。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步