1.找出应用中可能变化的之处,把他们独立出来,不要和那些不需要变化的代码混在一起。
结果:由于代码变化引起的不经意变化减少,系统弹性减少。
2.针对接口编程,而不是针对实现(具体)编程。
使用委托,而不是继承。 动态设定行为。
类之间的关系可以是 "is a"-是一个,也可以是"has a",有一个。
多用组合,少用继承。
jdk中最常用的模式观察者模式
观察者模式定义了对象之间的一对多依赖关系,当依赖对象的状态改变,其他对象都会知悉并自动更新。
3.使交互对象之间松耦合
java.util.Observable 是一个类,而不是一个接口。它把setChanged方法设为protected,除非使用继承,否则不能将它组合进来,违反了oo规则"多用组合,少用继承"
4.类应该对修改关闭,对扩展开放。
装饰者模式:动态的将责任附加到对象上,比继承更有弹性。
但是会引入很多的小类。
工厂模式
定义了一个创建对象的接口,由子类决定要创建的对象是哪一种类型。
5.依赖倒置原则
要依赖抽象,不要依赖具体类。
如何做到依赖倒置呢,有以下原则:
变量不可以有具体类的应用,用工厂方法解决;
不要让类派生自具体类;
不要覆盖基类中实现的方法;(基类中的方法应该在所有子类中共享)
抽象工厂模式
提供一个接口用于创建相关和依赖对象的家族,而不需要指明具体的类。
抽象工厂 vs 工厂
抽象工厂定义了一个生产一组产品的接口,而这个接口的每个方法负责创建一个产品。
分享到:
相关推荐
HEAD FIRST JAVA全书的学习笔记
HeadFirst设计模式学习笔记比较全面详细地讲解了13个设计模式,有利于大家更好的学习HeadFirst设计模式,希望亲们会喜欢~~~
CSS 学习笔记Head First HTML&CSS 学习笔记 Head First HTML&CSS 学习笔记Head First HTML&CSS 学习笔记 Head First HTML&CSS 学习笔记Head First HTML&CSS 学习笔记 Head First HTML&CSS ...
CSS学习笔记HeadFirst HTML&CSS学习笔记 HeadFirst HTML&CSS学习笔记HeadFirst HTML&CSS学习笔记 HeadFirst HTML&CSS学习笔记HeadFirst HTML&CSS学习笔记 HeadFirst HTML&CSS学习笔记Head...
Head First 设计模式学习笔记。更多内容请参见文章内容。
个人的Head First Servlets & JSP (SCWCD)读书及学习笔记
head_first_servlet&jsp学习笔记
著名的《Head First Design Pattern》学习笔记,摘要这本书中的设计思路。由于书本过长,整理出笔记帮助回想起设计模式。文件是docx格式,只能由OFFICE Word 2007之后的版本打开,内附Visio类图文件。本文由个人整理...
Head First系列都是入门的绝佳好书!这是Head First Ajax的一些读书笔记,读书需要越读越薄,仅供学习。
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
Head.First 设计模式学习笔记.pdf Head.First 设计模式学习笔记.pdf
http://blog.csdn.net/laszloyu/archive/2010/05/11/5579765.aspx 示例代码
head first C#学习笔记一构建控件较为简便的方法-用UserControl。
编写一个棒球模拟系统。要达到的效果:输入棒球的轨迹和距离,输出其他对象的响应(投球手能否接到球,现场观众如何反应,裁判如何反应等。)
head first 工厂模式学习笔记
自己总结的SCWCD学习笔记 内容包括网上的《SCWCD Exam Study Kit》和纸版的《Head First Servlets & JSP》 对于想系统了解J2EE的人也很有帮助
《HEAD FIRST JAVA》第一次回顾和整理,给需要的朋友参考学习
本文为Head first C#中的一个实例整理:以构建一个动画控件为例,讲解如何构建自己的控件(用继承PictureBox的方法)。
Head First学习笔记+Head First之装饰者模式高清PDF