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
原文地址:http://www.cnblogs.com/hyp5490-/p/3745255.html