java设计模式---装饰模式

来源:互联网 发布:在线视频下载软件 编辑:程序博客网 时间:2024/06/15 14:48


设计模式------装饰模式

1,博客---记录自己的点滴成长;

2,昨天接触到java中比较重要的一个问题---即设计模式;设计模式对代码的规范和简洁提供非常大的帮助,今天讨论的是装饰模式----给一个类添加一些额外的职责,并且在添加这些额外的职责时不会控制该类的执行逻辑

3,问题:请用java语言描述出下述问题的逻辑关系,现有饼(Cake),手抓饼(CrashCake)两个类,显然CrashCake类继承饼Cake类,而手抓饼的材料有: 鸡蛋,火腿,里脊,青菜,牛肉,,,;要求用代码表示出所有的手抓饼类型,如:鸡蛋手抓饼,鸡蛋里脊手抓饼,鸡蛋里脊牛肉手抓饼,,,,;我们可以看到手抓饼的类型有非常多,如果用一个类去描述一种手抓饼则会有非常多个类,此时就会造成类爆炸,而用装饰模式就可以很好的解决这个问题。

4,分析:首先必须有一个基础类即被修饰的类---饼(Cake),这个由于是源头所以我们把它定义为接口;其次就是手抓饼(CrashCake),显然CrashCake是继承Cake的,其实它也是一个被装饰的类;然后就是Decorate类,修饰类,它和Cake是并联关系也就是说它们之间是一种动态的关系,Decorate类里的属性包含Cake cake;最后就是各种修饰类了,BeefDecorate,EggDecorate等等,当然它们都继承Decorate类。



5,代码示例:

      





   



0 0