设计模式基础知识

 高内聚/低耦合

 高内聚:

    内聚就是一个模块内各个元素彼此结合的紧密程度。

    高内聚就是一个模块内各个元素彼此结合的紧密程度高。

    就类而言,一个类只处理一件事情,类中的属性和方法只与处理的这件事情相关;

    就模块而言,一个模块只处理相近或者相关的功能。

    也就是单一职责。 

 低耦合:

    耦合就是一个软件结构内不同模块之间互连程度的度量。也就是不同模块之间依赖的程度。如果一个模块的修改就会影响另一个模块,这两个模块就是高耦合。

    模块之间存在数据交互,所以模块之间的耦合必然存在,我们可以通过设计来降低耦合度,但不能消除耦合。

    模块间的依赖可以传递,我们可以通过转移依赖来降低耦合;也可以分离关注点来降低耦合。

  

 面向对象思想的三大基本特征

  一、封装性

    封装就是将事物的特性和行为抽象成类的属性和方法,类中属性和方法配合实现相关功能,通过访问修饰符public/protected/private来控制对类的属性和方法的访问,隐藏客户程序不必要关心的属性、方法及功能的实现,公开客户程序关心的属性和方法,实现信息的隐藏。

  二、继承性

    继承是一个事物拥有另一事物所有的特性和行为,此事物还具有自己独有的特性和行为。也就是派生类可共享基类所有的属性和方法,从而实现了代码的复用。

    继承有接口继承和实现继承两种:接口继承是派生类需要重写覆盖基类的虚方法。实现继承是派生类直接使用基类已经实现的方法。

  三、多态性

    多态即多种形态,主要体现在两个方面:

    一方面是基类与派生类之间,派生类可以重写覆盖基类的虚方法,使得同一方法在基类和派生类表现出不同的行为;

    另一方面是在一个类内部,同名方法的重载。

  

面向对象设计的五大基本原则

  一、单一职责原则 (SRP:Single Responsibility Principle)

    单一职责就是一个类只处理一件事情,类中的属性和方法只与处理的这件事情相关;一个模块只处理相近或者相关的功能,不包括其他功能的实现。

  二、开放封闭原则   (OCP:Open-Close Principle)

    开放封闭就是对扩展开发,对修改封闭。换句话说就是允许变化,通过新增实现变化,而不是修改原系统。

  三、Liskov替换原则  (LSP:Liskov Substitution Principle)

    李氏替换是派生类可以替换基类,就是用基类的地方都可以用派生类替换。

    就像正方形和矩形的关系,正方形是特殊的矩形,正方形是矩形派生的,在用矩形的地方都可以用正方形。

  四、依赖倒置原则  (DIP:Dependency Invertion Principle)

    依赖倒置是相对于结构化设计而言的。

    面向对象设计的依赖思想是依赖相对稳定的对象,如:依赖接口或者抽象类,因为接口和抽象类比实现类稳定。

    就类而言,具体类依赖抽象是实现抽象,客户类依赖抽象是调用抽象。

    就模块而言,底层模块依赖抽象是实现抽象,高层模块依赖抽象是调用抽象。

  五、接口分离原则  (ISP:Interface Separate Principle)

    接口分离是指接口功能的分离,每个接口只负责相似或者相关的功能。也就是接口职责单一。

 

设计模式总思想:分离稳定部分和变化部分,抽象封装变化部分,实现模块间的松耦合。

 设计模式系列目录

一、创建型模式

1、创建型模式之单例模式;

2、创建型模式之工厂方法模式;

3、创建型模式之抽象工厂模式;

4、创建型模式之生存器模式;

5、创建型模式之原型模式;

二、结构型模式

1、结构型模式之适配器模式

2、结构型模式之桥接模式

3、结构型模式之组合模式

4、结构型模式之装饰模式

5、结构型模式之外观模式

6、结构型模式之享元模式

7、结构型模式之代理模式 

三、行为型模式

1、行为型模式之职责链模式

2、行为型模式之命令模式

3、行为型模式之解释器模式

4、行为型模式之中介者模式

5、行为型模式之迭代器模式

6、行为型模式之观察者模式

7、行为型模式之模板方法模式 

8、行为型模式之备忘录模式

9、行为型模式之状态模式

10、行为型模式之策略模式

11、行为型模式之访问者模式

 

posted @ 2013-03-19 22:11  xwj_smile  阅读(229)  评论(0)    收藏  举报