设计模式中的几个法则,
迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以借助第三者转发这个调用。
迪米特法则强调的前提是在类的结构设计上,每一个类都应该尽量降低成员的访问权限。
其根本思想是强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。也就是多要针对接口编程,不要针对实现编程。高层模块不应该依赖于低层模块,两个都应该依赖于抽象。
依赖倒转可以说是面向对象设计的标志,用那种语言来编写程序不重要,若果编写时考虑的都是如果针对抽象编程,而不是针对细节编程,即程序中所有的关系都是终止与抽象类或者接口,那就是面向对象的设计,反之就是过程化的设计。
里氏代换原则,一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类替换成他的子类,程序的行为没有变化。简单说,子类型必须能够替换掉他们的父类型。
正因为有了这个原则,使继承复用成为可能,只有当子类可以替换掉父类,软件单位的功能不受影响时,父类才能真正的被复用,而子类也能够在父类的基础上增加新的行为。也可以说,正是由于子类型的可替换性,才使得使用父类类型的模块在无需修改的情况下就可以扩展。