设计模式之设计原则
1. 单一原则
单一原则: 字面意思是功能单一,解释一个类应该仅有一个引起它变化的原因。 例子:比如单反和手机,单反的拍摄效果优于手机,因为它专为摄像而生
2. 开放封闭原则
**开放封闭原则 : 软件实体(类,模块,函数)应该可以扩展,但是不可以修改 **
对于扩展时开放的,对于更改是封闭的。
比如设计软件要容易维护又不容易出问题最好的方法是多扩展少修改
何时应对变化呢?
绝对的对修改关闭时不可能的。无论模块是多么的封闭,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须有对于它涉及的模块应该对哪种变化封装做出选择,它必须先猜测出最有可能发生变化的种类,然后构造抽象来隔离那些变化
当我们最初写代码时,假设变化不会发生。当变化发生时,创建抽象来隔离以后发生的同类变化。
实质:面对需求,对程序的改动是通过增加心代码进行的,而不是更改现有的代码。
3. 依赖倒转原则
依赖倒转原则 : 抽象不应该依赖细节,而是细节依赖抽象。也就是说面向接口编程而不是面向实现编程
依赖倒转原则: 高层模块不应该依赖底层模块。两个都应该依赖抽象
抽象不应该依赖细节,而是细节依赖抽象
4. 里氏替换原则
一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且察觉不出父类对象和子类对象的区别。也就是说,再软件里面,把父类都替换成它的子类,程序的行为没有变化。
**里氏替换原则:子类型必须能够替换掉他们的父类型**
由于里氏替换原则,使得继承得以复用。只有当子类可以替换掉父类,软件单位的功能不受到影响,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。
5. 迪米特法则
迪米特法则也叫最少知识的法则
迪米特法则: 如果两个类不必彼此直接通信,那么通过这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法时,可以通过第三者转发这个调用。
迪米特法则:表示类之间的松耦合,类之间的松耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
例子:假设IT部门是抽象的,如果里面的人换了新人,电脑出问题还是可以找IT部门的解决,而不需要认识里面的同事。或者是只认识主管,让主管去找里面的人进行修理