Head-First设计模式读书笔记-装饰模式
11页1、 Head First设计模式读书笔记三 装饰模式 本文示例代码材料源自Head First设计模式以前整理自己整理的装饰模式的链接:思想最大特点就是不修改原有代码的前提下,可以新增功能,使用情况可以参见我之前的总结,时隔一年,发现原文(在之前的总结,使用的例子是画形状和着色问题,画形状是一个基本功能,着色的功能可以通过装饰器模式给原来的画图形装饰一下,那么画图形的工具也具有了着色的功能。这里我还是采用Head First中饮料和调料的例子来模拟装饰模式。初学阶段,多看一个例子,能够看出一些通用的规则,不是么。上栗子:当前有个需求如下:一家奶茶店出售各式饮料,比如饮料A,饮料B,饮料可以放入不同的配料,比如加冰,加巧克力,加摩卡等等。要如何实现呢。是否可以通过继承来实现?比如实现巧克力饮料A,摩卡饮料B,加冰饮料A。可以想见,这样会出现类爆炸的情况,如果客人需要双倍加冰双倍摩卡饮料A怎么办?如果后期饮料或是配料增加了种类,又会增加一大波类出来。那么,如果在饮料中添加各个配料标志位来表示是否需要添加该配料的情况怎么样?这样乍看很合适,但是当增加配料的时候,如果饮料的种类很多,那么对原来设
2、计的修改就比较麻烦了。就没有一种情况,可以在不修改原来的代码,并且还能在饮料和配料增加的情况还能简便的扩展的方法么?那就用到今天的主角装饰模式了。装饰模式的核心在于装饰类和被装饰类具有共同的基类。这样,装饰者就可以在原来的基类上包装一下,看上去多了一些功能或操作。特别要注意,饮料和配料类都继承自同一个类,在创建配料对象时,需要传入饮料对象作为参数,配料在饮料对象上进行进一步封装。示例思路(规划类图)装饰模式基本UML图:如果运用到饮料和配料的例子中,UML图就是这样的:实际代码被装饰者饮料类public interface IBeverage public String getDescription(); public double getCost();public class BeverageA implements IBeverageString description = BeverageA ;double cost = 1.9;public String getDescription() / TODO Auto-generated method stubreturn descr
3、iption;public double getCost() / TODO Auto-generated method stubreturn cost;public class BeverageB implements IBeverageString description = BeverageB ;double cost = 2.1;public String getDescription() / TODO Auto-generated method stubreturn description;public double getCost() / TODO Auto-generated method stubreturn cost;装饰者配料类public interface ICondimentDecorator extends IBeveragepublic class Condiment1 implements ICondimentDecoratorString description = Condiment1 ;double cost = 0.1;IBeverage beve
《Head-First设计模式读书笔记-装饰模式》由会员Baige****0346分享,可在线阅读,更多相关《Head-First设计模式读书笔记-装饰模式》请在金锄头文库上搜索。
员工积极主动行为的组态效应:基于过程的视角
汪晖齐物平等与跨体系社会的天下想象
函数性质中的数学抽象在问题解决与设计中的应用
日本东京大学入学考试理科数学试题解析
二次电池研究进展
实践研究与论理逻辑
光学视觉传感器技术研究进展
龙泉青瓷的传承困境与发展
齐齐哈尔地区抗根肿病大白菜品种的抗性鉴定与评价
基于系统动力学模型的胶州湾海域承载力预测
基于弯液面电化学连接碳纤维实验初探
龟甲胶研究发展探析
鼻腔黏膜免疫佐剂鞭毛蛋白的研究进展
鼻内镜辅助上颌骨部分切除术治疗鼻腔鼻窦腺样囊性癌的临床分析
黑豆不同发芽期多酚、黄酮及抗氧化活性分析
齐鲁青未了:山东当代文学审美流变论
黄登水电站机电设备安装工程施工技术质量管理
黄河文化传承视角下音乐剧创作探究
黄亦琦从风论治咳嗽变异性哮喘经验※
鲸豚动物吸附式声学行为记录器综述
2022-03-24 12页
2022-03-24 11页
2022-03-24 10页
2022-03-24 25页
2022-03-24 13页
2022-03-24 18页
2022-03-24 10页
2022-03-24 32页
2022-03-24 8页
2022-03-24 9页