面向对象设计原则
一、单一职能原则
单一职能原则就是在设计程序的时候,每个对象设计只有一个职责,就是让每一个对象或者类只做一件事。
单一职能原则的好处就是高内聚低耦合。
二、开闭原则
开闭原则是指对扩展开放,对修改关闭。
第一个好处是,可以使程序有很好的适应性和灵活性,增加功能时不需要要修改已有的代码,已有的代码可以在更多的地方使用,要进行扩展很方便。
第二个好处是,稳定性和延续性,因为避免了不必要的修改,代码变的更稳定,可以长久保持代码的可靠性。
第三个好处是,由于代码的稳定,所以就更适宜复用。进行功能扩展时也不会影响已有的代码,使得代码维护更容易。
三、里氏替换原则
里氏替换原则表示在任何父类出现的地方都可以用它的子类来替换,且不影响功能。
对象的多态性就是最好的里氏替换原则的例子。父类类型指向子类对象。
四、依赖倒置原则
就是将高层模块和底层模块设计称依赖于接口或者抽象类,就是创建类的时候最好都来自接口或抽象类,接口负责公共方法的声明,抽象类负责公共方法的实现。
五、接口隔离原则
接口隔离原则就是将功能拆分开来放在不同的接口中。
六、迪米特原则
迪米特原则又叫最少知识原则,意思就是一个对象应当对其他对象尽可能少的了解,也尽可能地被更少的对象了解。如果两个类不彼此直接通信,那么两个类就不应该发生直接相互作用,当其中一个类需要调用另外一个类的方法时,可以通过中介类实现。但是过度使用中介类会造成系统模块之间通信效率降低。
七、组合/聚合复用原则
组合或聚合可以将已有的对象纳入新对象中,使之成为新对象的一部分,因次新对象可以调用已有对象的功能,这样做有一下几点好处:
对象组合是通过接口访问,所以并不破坏封装性,只要类型一致,运行时刻还可以用一个对象来替代另外一个对象,更进一步,因为对象的实现是基于接口写的,所以实现上存在较少依赖关系,当然也存在缺点,造称系统会有较多的对象需要管理。