一. 优化代码第一步------单一职责原则
SRP.:就一个类而言,应该仅有一个引起它变化的原因。
一个类中应该是一组相关性很高的函数,数据的封装。两个瓦努奇安不一样的功能就不应该在同一个类中。
二. 让程序更稳定,更灵活-------开闭原则
OCP:软件中的对象(类,模块,函数等)应该对于扩展是开放的,但对于修改是封闭的。
当软件需要变化时,尽量通过扩展的方式来实现变化,而不是修改已有的代码来实现。程序一旦开发完成,程序中一个类的实现只应该因错误而被修改,新的或者改变的特性应该通过新建不同的类实现,新建的类可以通过继承的方式来重用原来的代码。
三. 构建扩展性更好的系统------里氏替换原则
LSP:所有引用基类的地方必须能透明的使用其子类的对象。
只要父类能出现的地方,子类就可以出现,而且替换为子类也不会产生任何错误和一场,使用者不需要知道使用的是父类还是子类。但是反过来就不行,有子类出现的地方,父类未必能适应。
里氏替换原则的核心原理是抽象,抽象又依赖于继承这个特性。继承有如下优点:
(1)代码重用,减少创建类的成本,每个子类都拥有父类的方法和属性。
(2)子类和父类基本相似,但有所区别
(3)提高代码的可扩展性。
缺点:
(1)继承是侵入性的,只要继承就必须拥有父类的所有属性和方法
(2)可能造成子类代码冗余,灵活性降低,因为子类必须拥有父类的属性和方法。
四. 让项目拥有变化的能力-------依赖倒置原则
模块之间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生。
五. -系统有更高的灵活性-----接口隔离原则
客户端不应该依赖不需要的接口。类间的依赖关系应该建立在最小的接口上。
让客户端依赖的接口尽可能少。
六.更好的可扩展性---------迪米特原则
LOD:一个对象应该对其他对象有最少的了解。一个类应该对于自己需要耦合或者调用的类知道得最少,类的内部如何实现与调用者或者依赖者没有关系,调用者或者依赖者只需要知道它需要的方法即可。
网友评论