装饰者模式
来源:互联网 发布:mac双系统怎么删除os 编辑:程序博客网 时间:2024/06/05 13:32
刚刚看了设计模式的装饰者模式
实验楼地址:
https://www.shiyanlou.com/courses/100/labs/874/document
装饰者模式类图:
代码:
// 抽象类 Girlpublic abstract class Girl { String description = "no particular"; public String getDescription(){ return description; }}// 美国女孩public class AmericanGirl extends Girl { public AmericanGirl() { description = "+AmericanGirl"; }}// 国产妹子public class ChineseGirl extends Girl { public ChineseGirl() { description = "+ChineseGirl"; }}// 装饰者public abstract class GirlDecorator extends Girl { public abstract String getDescription();}// 下面以美国女孩示例// 给美国女孩加上金发public class GoldenHair extends GirlDecorator { private Girl girl; public GoldenHair(Girl g) { girl = g; } @Override public String getDescription() { return girl.getDescription() + "+with golden hair"; }}// 加上身材高大的特性public class Tall extends GirlDecorator { private Girl girl; public Tall(Girl g) { girl = g; } @Override public String getDescription() { return girl.getDescription() + "+is very tall"; }}// 检验一下public class Test { public static void main(String[] args) { Girl g1 = new AmericanGirl(); System.out.println(g1.getDescription()); GoldenHair g2 = new GoldenHair(g1); System.out.println(g2.getDescription()); Tall g3 = new Tall(g2); System.out.println(g3.getDescription()); // 你也可以一步到位 // Girl g = new Tall(new GoldenHair(new AmericanGirl())); }}
输出结果:
+AmericanGirl+AmericanGirl+with golden hair+AmericanGirl+with golden hair+is very tall
主要收获:
java中接口的方法都是抽象的,实现接口的类要把所有的方法实现
java中抽象类的方法不都是抽象的,继承抽象类的时候对于非抽象方法,不一定要实现,对于抽象方法一定要实现
欢迎加入中科院开源软件自习室:631696396
阅读全文
0 0
- 装饰者模式(Derector)
- 装饰者模式
- Decorator 装饰者模式
- 装饰者设计模式
- 装饰者模式
- 装饰者模式
- 装饰者模式
- 装饰者模式(Decorator)
- 装饰者模式
- 装饰者模式
- 装饰者模式
- 装饰者模式 DecoratorPattern
- 设计模式 - 装饰者
- 装饰者模式
- 装饰者模式
- 装饰者模式 - 2
- 装饰者模式
- 装饰者模式
- 使用thymeleaf时遇到的一些问题
- 自定义函数实现浮点数的求余
- 练习30
- 内存管理技术
- 体系结构—工厂方法模式
- 装饰者模式
- linux中的匿名管道和命名管道
- VC网络编程笔记--进程间通信-匿名管道
- 【Python】while简单实现删除list列表中的多个空元素
- 小小程序
- L1-008. 求整数段和
- MSSQL2008配套参数
- Handle MessageQueue Message Looper之间的关系
- 卸载oracle