设计模式的原则
开闭原则
即对软件功能的扩展是开放的,对修改应该是关闭的。
即在进行功能的扩展时,不需要对原来的程序进行修改。
因为程序的逻辑是复杂的, 牵一发而动全身,修改一个地方,
往往可能导致另一个地方出现BUG。
单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
即一个类的功能要单一,这样引起变化的原因才会只有一个。
但是有的时候,不得不修改,那么如果类的功能越单一,
修改起来也就越简单。
里氏替换原则
子类可以扩展父类的功能,但不能改变父类原有的
功能。
1.子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
2.子类中可以增加自己特有的方法。
3.当子类的方法重载父类的方法时,方法的前置条件(即方法的形
参)要比父类方法的输入参数更宽松。
4.当子类的方法实现父类的抽象方法时,方法的后置条件
(即方法的返 回值)要比父类更严格。
它的作用是应用在多态方面,但需要一个父类时,你拿任意一个
子类对象都是行得通的,如果按照该原则的话。比如java中的
容器类。
依赖倒转原则
依赖于抽象实现,而不要依赖于具体实体。
因为抽象是不会变化的, 但是具体的实现是会变化的。
因为抽象是抽象出类要提供什么功能,而具体是实现是为了实现
该功能的算法。 那么很明显,抽象出的功能是很少变化的,
但是具体的实现却会变化, 所以依赖抽象来编程, 那么实现虽然
变化了,但是抽象类提供的接口没有变化, 那么就不会影响使用。