现在的位置: 首页 > 综合 > 正文

Head Frist设计模式读书笔记

2014年02月05日 ⁄ 综合 ⁄ 共 1349字 ⁄ 字号 评论关闭
设计原则:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
针对接口编程,而不是针对实现编程。
多用组合,少用继承。
为了交互对象之间的松耦合设计而努力。(松耦合提供更多的弹性,更能应对变化)
开放-关闭原则:类应该对扩展开放,对修改关闭。(弹性)
依赖倒置原则:要依赖抽象,不要依赖具体类。(不管高层或低层组件,都应该依赖于对象)
最少知识原则:只和你的密友谈话。
高层组件调用低层组件,低层组件不要调用高层组件。
单一责任原则:一个类应该只有一个引起变化的原因。

(当一个模块或一个类被设计成只支持一组相关的功能时,我门说它具有高内聚)


策略模式:利用组合和委托将算法和算法的使用者分离。
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
(注:有多个观察者时,不可以依赖特定的通知次序)

装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

(装饰者和被装饰对象具有相同的超类型)

工厂模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。

(创建者类定义了所有操纵产品的方法,但不实现工厂方法,工厂方法由具体的不同子类来实现)-》使用继承

抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。-》使用组合

单例模式:确保一个类只有一个实例,并提供一个全局访问点。

命令模式:将“请求”封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持可撤销的操作。
(将发出请求的对象和执行请求的对象通过命令对象解耦)

适配器模式:将一个类的接口,转换成客户期待的另一个接口。适配器让原本接口不兼容的类可以合作无间。(转换接口)

门面模式:提供了一个统一的接口,用来访问子系统中的一群接口。门面定义了一个高层接口,让子系统更容易使用。(简化接口)
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法可以使得子类在不改变算法结构的情况下,重新

定义算法中的某些步骤。(注:可以用钩子方法做出一些步骤是否执行的选择。 策略->组合,模板->继承)

迭代器模式:提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
组合模式:允许你将对象组合成树状结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

(忽略叶子节点和子节点的差别,一视同仁,可以把叶子节点看成没有孩子的子节点)

状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

(将状态封装成为独立的类,并将动作委托到代表当前状态的对象。避免状态的许多条件判断)
代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。(控制对象访问)
复合模式:结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。(如MVC模式)

模式是在某情境下,针对某问题的某种解决方案。
模式的分类:创建型、行为型和结构型
让设计模式自然而然地出现在你的设计中,而不是为了使用而使用。
设计模式并非僵化的教条;你可以依据自己的需要采用或调整。
总是使用满足需要的最简单解决方案,不管它用不用模式。

抱歉!评论已关闭.