码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式和面向对象设计原则

时间:2015-08-25 19:09:25      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

1:策略模式

策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

封装变化,多用组合少用继承,针对接口编程而不是针对实现编程。

2:观察者模式

观察者模式定义了对象一对多的依赖关系,这样一来,当一个对象状态改变,依赖它的所有的对象都会收到通知并自动更新。

为对象之间的松耦合设计而努力。

3:模板方法模式

模板方法模式在一个方法中定义了算法的骨架,而讲一些步骤延迟到子类中实线,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。

高层组件调用底层组件,依赖倒置原则,不变使用具体类,使用抽象,便于解耦。

4:装饰者模式

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

装饰者和被装饰对象有相同的超类。

你可以用一个或者是多个装饰者装饰一个对象

既然装饰者和被装饰者由相同的超类,所以在任何需要原始对象的场合,都可以使用装饰过的对象替代它。

装饰者可以在所委托被装饰者的行为之前或者是之后,加上自己的行为达到特定的目的

对象可以在任何时候被装饰,所以可以在运行时动态地,不限量地使用你自己喜欢的装饰者来装饰对象

类应该对拓展开放,对修改关闭。

5:工厂方法模式

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

依赖倒置原则:要依赖抽象,不要依赖具体的类。

不要覆盖基类中已经实现的方法

不要让类派生自具体类

变量不可以持有具体类的引用

6:抽象工厂方法模式提供了一个接口,用于创建相关或者是依赖对象的家族,而不需要指明具体的类。

工厂方法模式使用的是继承:把对象的创建委托给子类,子类实现工厂方法创建对象;抽象工厂方法模式使用的是组合:对象的创建被实现在工厂接口所暴露出来的方法中。

 

 

面向对象设计原则:

 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。

 如果一个类承担的职责过多,就等于把他职责耦合在一起了,一个职责的变化可能会削弱或者是遏止这个类完成其他职责的能力。

内聚性:一个模块的组成原则之间的功能相关性。

 

开放封闭原则:软件实体(类,模块,函数)应该是可以拓展的,但是不可以修改的。

关键是抽象。模块可以操作一个抽象体, 处于模块依赖于一个固定的抽象体,所以它对于修改是可以关闭的,同时通过这个抽象派生体,也可以拓展此模块的行为。

开发人员应该仅仅对程序中呈现出频繁变化的那些部分做出抽象,拒绝不成熟的抽象和抽象本身一样重要。

 

里氏替换原则:

其子类对象可以代替父类对象,但其父类对象不能代替子类对象.在一个软件系统中,子类应该可以替换任何基类能够出现的地方,并且经过替换以后,代码还能正常工作。

 

 依赖倒置原则:

高层模块不应该依赖于底层模块二者都应该依赖于抽象

抽象不应该依赖于具体的细节,细节应该依赖于抽象

所有设计良好的面向对象的架构,都应该具有清晰的架构,每个层次通过一个定义良好的,受控的接口向外提供内聚的服务。

任何变量都不应该持有一个指向具体类的指针或者是引用

任何方法都不应该从具体类派生

任何方法都不应该重写他的任何基类中已经实线的方法 

 

设计模式和面向对象设计原则

标签:

原文地址:http://www.cnblogs.com/luochuanghero/p/4754309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!