设计模式要求我们不应该针对实现编程,为了降低耦合度,提高可维护性。当程序中出现“new”的时候,就证明程序在实例化一个具体类,所以用的是实现,而不是接口。如果代码绑着具体的类会导致代码更加脆弱,缺乏弹性。
紧接着我们设计模式一种的“模拟鸭子”这个事件:
Duck duck = new MallardDuck();
可以看到,我们需要使用Duck接口让代码具有弹性,但是还是需要建立具体类的...
分类:
其他好文 时间:
2015-05-31 23:20:28
阅读次数:
181
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 简单的说,外观模式就是把复杂的系统的具体操作封装起来,只暴露一个简单的接口,做和众多子系统之间松耦合。 提到一个设计原则:最少知识原则,只和你的密友谈话。(HeadFirst中的描述)具体的说就....
分类:
其他好文 时间:
2015-05-30 22:25:57
阅读次数:
164
1、HeadFirst上的标准实现,属于教学版接口声明:/*说明:报纸出版社+订阅者=观察者模式定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。设计原则:为了交互对象之间的松耦合设计而努力。*//***观察者,即订阅者*/classObserv...
分类:
其他好文 时间:
2015-05-26 00:16:06
阅读次数:
164
HeadFirst中的定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 适配器模式将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能在一起 工作的类可以在一起工作。 目标接口(Target):客户所期待的接口。目标可以...
分类:
其他好文 时间:
2015-05-22 17:02:15
阅读次数:
81
HeadFirst中并没有把建造者模式(生成器模式)当做常用的设计模式来讲解,只是在附录中一带而过。 建造者模式的本质: 分离了对象组件的单独构造(由Builder来负责)和装配(由Director)来负责。从而可以构建出复杂的对象。这个模式适用于:某个对象的构建 过程复杂的情况先使用。由于实现了....
分类:
其他好文 时间:
2015-05-22 00:09:44
阅读次数:
104
HeadFirst中装饰者模式的定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的的替代方案。 装饰模式的职责:动态的为一个对象增加新的功能。装饰模式是一种用于代替继承的技术,无需通过继承增加子类就可以扩展对象的功能,使用对象的关联关系代替继承关系,更加灵活,同时避免类型.....
分类:
其他好文 时间:
2015-05-18 01:05:25
阅读次数:
201
说明:以下内容是学习HeadFirst后自行整理的笔记。内容和程序均来自于该书策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。概念理解起来生硬,下面用一个鸭子的例子说明。有一个模拟鸭子的游戏。游戏中有各种各样的鸭..
分类:
其他好文 时间:
2015-05-17 18:52:15
阅读次数:
124
作为一个前端小白,在根本搞不清楚HTML和XHTML到底是不是亲戚关系的情况下,我选择了这本《Head First:HTML和CSS(第二版)》,只想说一句:“大神,请收下我的膝盖!” 懂点前端基础知识的人可能会觉得这本书都是屁话吧,但是作为菜鸟的我,的确喜欢听他瞎BB,这个纯属个人爱好,与...
分类:
Web程序 时间:
2015-05-14 18:30:17
阅读次数:
92
HeadFirst中对观察者模式的定义:观察者模式定义了对象之间的一对多的依赖,这样一来,当一个状态发生变化时,它的所有依赖者都会收到通知并自动更新。松耦合:当两个对象时间松耦合,它们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计,让主题和观察者之间的松耦合。 有两种自动更细的....
分类:
其他好文 时间:
2015-05-13 06:07:56
阅读次数:
118
一、进入java的世界1.你要做的事情:编写源代码Party.java -》 编译:javac Party.java,产生Party.class文件(eclipse是自动编译的,.class文件存放在Path路径下)-》在某个jvm上执行:java Party2.一些java基本语法的东西:(1)j...
分类:
编程语言 时间:
2015-05-07 11:52:10
阅读次数:
128