`
shuofenglxy
  • 浏览: 189640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

菜鸟硕枫设计模式系列之25 设计模式5大原则

阅读更多
开闭原则(Open-Closed Principle):
对扩展开放,对修改关闭。要点在于抽象,通过抽象出类或接口,使得不同功能可以通过细化子类或接口实现去完成,达到了功能扩展,而有尽量不影响原有功能代码。

单一职责原则(Single Responsibility Principle ):
一个类,最好只有一个职责,所谓职责,就是引起类(对象)行为变化的原因,如果一个类有很多职责,那么导致对象行为变化的原因就会很多,这样就有可能导致设计混乱,易出现bug,如果一个职责发生变化就会导致整个类都要被修改,这会违背开闭原则.单一职责原则确保了类功能的高内聚性。

里氏代换原则(Liskov Substitution Principle):
某段功能代码使用的是一个父类对象的话,那么用其子类对象去代替父类对象之后,功能代码是能够完全正常使用,不会察觉出对象的变化。换而言之,任何基类可以出现的地方,子类一定可以出现。而里氏代换原则,则是实现抽象复用的基础。通过里氏代换原则的抽象处理,则能更大程度的保证开闭原则。

依赖倒置原则(Dependence Inversion Principle ):
   抽象不应该依赖于细节,细节应该依赖于抽象。
   高层模块不依赖底层模块,两者都依赖抽象。
程序中所有的依赖关系都应该终止与抽象类或者接口,则有:
1.任何变量都不应该持有一个指向具体类的指针或者引用
2.任何类都不应该从具体类派生
3.任何方法都不应该覆写它的任何基类中的已经实现了的方法
当然每个程序中都会有违反该启发原则的情况.有时候要创建具体类的实例,而创建这些实例的模块将会依赖于它们.此外,该启发原则对于那些虽是具体但却稳定的类来说似乎不太合理.如果一个具体类不会改变,并且也不会创建其他类似的派生类,那么依赖于它并不会造成损害.

迪米特法则(Law of Demeter ):
又叫最少知识法则。就是说一个对象应当对其他对象尽可能少的了解,如果两个对象直接不发生关系,那么就不应该一个直接请求另一个,而只应该第三方去请求服务。目的在于降低类之间的耦合关系。如果每个类尽量减少对其他类的依赖,那么系统的功能模块功能就会相对独立,这样的话系统间存在尽可能少的依赖关系,最终达到松耦合的目的。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics