设计原则:
1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
也就是说,要把会变化的部分取出并封装起来,好让其它部分不受影响。
2、针对接口编程,而不是针对实现编程。
“行为”类的存在,使得接口的实现更具有灵活性,可以随意调用,而不用像继承实现那样,每写一个实体类,就得重写很多相同的方法。这才有了后来的行为组合。
3、多用组合,少用继承。
使用组合建立系统具有很大的弹性,不公可将算法族封装成类,更可以“在运行时动态地改变行为”。
===============================================================================
策略模式
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
===============================================================================
回顾一下之前学过的向上转型的知识:
父类A中有方法fight(),子类B继承了A,也有fight()方法,当在类C中这么写时:A a = new B();此时便是向上转型,B自动向上转型为A的对象,但这是安全的。
也可以说,向上转型并非是将B自动向上转型为A的对象,相反它是从另一种角度去理解向上两字的:它是对A的对象的方法的扩充,即A的对象可访问B从A中继承来的和B复写A的方法。其它的方法都不能访问。即使是A 中的私有成员方法。
分享到:
相关推荐
HeadFirst设计模式 读书 笔记
HeadFirst设计模式学习笔记比较全面详细地讲解了13个设计模式,有利于大家更好的学习HeadFirst设计模式,希望亲们会喜欢~~~
笔记_HeadFirst设计模式
Head First 设计模式学习笔记。更多内容请参见文章内容。
Head First设计模式读书笔记-DesignPatterns
1.1 《Head First设计模式》阅读笔记.第一章 1.2 《Head First设计模式》阅读笔记.第二章 1.3 《Head First设计模式》阅读笔记.第三章 1.4 《Head First设计模式》阅读笔记.第四章 1.5 《Head First设计模式》...
HeadFirst 设计模式学习笔记3--装饰模式 Demo http://blog.csdn.net/laszloyu/archive/2010/05/12/5582561.aspx
HeadFirst 设计模式学习笔记2--观察者模式 demo http://blog.csdn.net/laszloyu/archive/2010/05/12/5581769.aspx
http://blog.csdn.net/laszloyu/archive/2010/05/11/5579765.aspx 示例代码
Head.First 设计模式学习笔记.pdf Head.First 设计模式学习笔记.pdf
NULL 博文链接:https://never-say-never.iteye.com/blog/851923
NULL 博文链接:https://zhangfy068.iteye.com/blog/1706132
著名的《Head First Design ...由于书本过长,整理出笔记帮助回想起设计模式。文件是docx格式,只能由OFFICE Word 2007之后的版本打开,内附Visio类图文件。本文由个人整理摘录,部分内容来自书本,仅供学习使用。
NULL 博文链接:https://chxiaowu.iteye.com/blog/1276845
headfirst 设计模式读书笔记 书很好,浅显易懂,例子生动,适合初学者
趣味的移动开发讲解讲解,类似个人笔记,非常容易懂的,有好多勾画图
设计模式Head First学习笔记,以及使用java编写的设计模式源码,Java原生sdk实现23种设计模式
一个Android应用程序,该应用程序演示了以下来源的GoF设计模式的源代码: E.Freeman,E.Freeman,K.Sierra,B.Bates的书:copyright:O'Reilly 2004 布莱恩·汉森(Bryan Hansen),何塞·帕玛(Jose Paumard)的课程:...