#单一职责原则编程
定义:一个类只负责一个功能领域中的相应职责(就一个类而言,应该只有一个引发它变化的缘由)设计
是实现高内聚,低耦合的指导方针对象
#开闭原则继承
定义:一个软件实体应对扩展开放,对修改关闭。即软件实体应尽可能在不修改原有代码的状况下进行扩展。接口
为了知足开闭原则,须要对系统进行抽象化设计,抽象化是开闭原则的关键。基础
#里氏代换原则变量
定义:全部引用基类的地方必须能透明地使用其子类的对象扩展
是实现开闭原则的重要方式之一软件
#依赖倒转原则数据类型
定义:抽象不该该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
依赖倒转原则要求咱们在程序代码中传递参数时或在关联关系中,尽可能引用层次高的抽象层类。即便用接口和抽象类进行变量类型声明,参数类型声明,方法返回类型声明,以及数据类型的转换等,而不要用具体类来作这些事情。
在大多数状况下,开闭,里氏代换,依赖倒转三个原则会同事出现,开闭是目标,里氏代换是基础,依赖倒转是手段。
#接口隔离
当一个接口太大时,咱们须要将它分割成一些更细小的接口
将大接口中的方法根据其职责不一样分别放在不一样的小接口中,以确保每一个接口使用都很方便,并承担某一个单一角色。
接口应该尽可能细化,同时接口中的方法应该尽可能少,每一个接口中只包含一个客户端(如子模块或业务逻辑类)所需的方法便可(定制服务)。
接口也不能太少,会致使接口泛滥。
#合成复用
复用时要尽可能使用组合/聚合关系(关联关系),少用继承
组合可使系统更灵活,下降类与类的耦合度,一个类的变化对其余类形成的影响相对较少。
使用继承时,须要严格遵照里氏代换原则。
#迪米特法则(最少知道原则)
`不要和“陌生人”说话,只与直接朋友通讯`
引入一个合理的第三者,来下降现有对象的耦合度。