您的位置:首页 > 其它

面向对象与设计模式

2016-03-10 20:34 134 查看
(一)OO基础:

抽象

封装

继承

多态

(二)OO原则

面向对象原则让我的程序模块达到“高内聚低耦合”.高内聚是指某个特定模块(程序,类型)都应完成一系列相关功能,高内聚意味可维护性,可重新性,因为模块对外部的依赖少(功能的完备性)。耦合是描述模块之间的依赖程度,低耦合则意味着修改另一个类不会影响其他类.

实现高内聚低耦合:行之有效的方式是分了关注点(SOC),将系统拆分成功能不同没有重叠功能集。每个功能只关注一个方面(Aspect)保证模块之间功能没有或者尽量少的重复。模块化内部实现细节隐藏,只暴露必须的接口,使得模块之间依赖于抽象,达到稳定。

1、开闭原则

全称:“Open-Closed Principle”

说明:对扩展开放,对修改关闭。

优点:降低了程序各部分之间的耦合性,其适应性、灵活性、稳定性都比较好。

2、里氏代换原则

全称:“Liskov Substitution Principle”

说明:子类型必须能够替换它们的基类型。

优点:可以很容易的实现同一父类下各个子类的互换,而客户端可以毫不察觉。

3、[b] 合成复用原则[/b]

全称:“Favor Composition Over Inheritance”

说明:尽量使用合成/聚合,尽量不要使用类继承 。

优点:可以很容易的实现同一父类下各个子类的互换,而客户端可以毫不察觉。

4、依赖倒转原则

全称:“Dependence Inversion Principle”

说明:要依赖于抽象,不要依赖于具体。要针对接口编程,不针对实现编程。

优点:依赖倒置原则使细节和策略都依赖于抽象,抽象的稳定性决定了系统的稳定性。

5、接口隔离原则

全称:“Interface Segregation Principle”

说明:使用多个专一功能的接口比使用一个的总接口总要好。

优点:会使一个软件系统功能扩展时,修改的压力不会传到别的对象那里。

6、迪米特原则(最少知道原则)

全称:“Law of Demeter”

说明:对象与对象之间应该使用尽可能少的方法来关联,避免千丝万缕的关系。

-------------------------------------分割线-------------------------------------------

7、单一职责原则

全称:“Single-Responsibility Principle”

说明:就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。

SRP优点:消除耦合,减小因需求变化引起代码僵化。

8 、封装变化


[b]全称:“Encapsulate What Changes”[/b]

把您认为或怀疑将来要被修改的代码封装起来,这种面向对象设计模式的优点是:易于测试和维护恰当封装的代码。

(三)设计模式

参考1:http://www.cnblogs.com/xing901022/category/597988.html

参考2:http://www.runoob.com/design-pattern/design-pattern-intro.html

GOF四人组的23种设计模式总体来说分为三大类:

创建型模式,主要用于创建对象同时隐藏创建逻辑的方式。共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,用于处理类或对象的组合。共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,用于描述类或对象之间怎样交互和怎么分配职责。共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

其实还有两类:并发型模式和线程池模式。

序号模式 & 描述包括
1创建型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
单例模式(Singleton Pattern)

工厂方法模式(Factory Method Pattern)

抽象工厂模式(Abstract Factory Pattern)

建造者模式(Builder Pattern)

原型模式(Prototype Pattern)

2结构型模式
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
适配器模式(Adapter Pattern)

代理模式(Proxy Pattern)

桥接模式(Bridge Pattern)

过滤器模式(Filter、Criteria Pattern)

组合模式(Composite Pattern)

装饰器模式(Decorator Pattern)

外观模式(Facade Pattern)

享元模式(Flyweight Pattern)

3行为型模式
这些设计模式特别关注对象之间的通信。
观察者模式(Observer Pattern)

策略模式(Strategy Pattern)

责任链模式(Chain of Responsibility Pattern)

命令模式(Command Pattern)

解释器模式(Interpreter Pattern)

迭代器模式(Iterator Pattern)

中介者模式(Mediator Pattern)

备忘录模式(Memento Pattern)

状态模式(State Pattern)

空对象模式(Null Object Pattern)

模板模式(Template Pattern)

访问者模式(Visitor Pattern)

4J2EE 模式
这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。
MVC 模式(MVC Pattern)

数据访问对象模式(Data Access Object Pattern)

业务代表模式(Business Delegate Pattern)

组合实体模式(Composite Entity Pattern)

前端控制器模式(Front Controller Pattern)

拦截过滤器模式(Intercepting Filter Pattern)

服务定位器模式(Service Locator Pattern)

传输对象模式(Transfer Object Pattern)

下面用一个图片来整体描述一下设计模式之间的关系:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: