首页 > 代码库 > 面向对象的设计模式

面向对象的设计模式

1:开闭原则OPC

  一个软件实体应当对扩展开放,对修改关闭。再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。

例子:

     车类 里有名字 发动机  发动机应当拿出另写一个类

2:单一职责原则SRP

  就一个类而言,应该仅有一个引起它变化的原因,在构造对象时,应将对象的不同职责分离至多个类中,从而确保引起该类变化的原因只有一个。此原则课提高内聚,降低耦合度。

例子:

   文档类{

     内容();

    打印();

}

打印分很多种,文档内容改变和打印方法改变,都会引起文档类的变化。

可用组合:

文档类{

内容();

打印类;

}

打印接口{

打印();

}

细节打印类1 实现 打印接口{

打印(){}

}

细节打印类2 实现 打印接口{

打印(){}

}

3,里氏替换原则LSP

 若对每个类S的对象O1,都存在一个类T的对象O2,使得在所有针对T编写的程序P中,用O1替换O2后,程序P行为功能不变,则S是T的子类。该原则的具体应用体现在继承关系上,在实现继承时,子类必须能替换掉他们的基类。如果软件中使用的事基类的话那么也一定可以使用其子类,但是反过来代换则可以不成立。即两个类不构成继承关系。

例子:

长方形类{

长;

宽;

get set 方法

}

正方形类  继承 长方形类{

// 长宽相等 

set  get  方法

//破坏了长方形的思想

 

}

 4,依赖倒置原则DIP  

 

         to be continued