里氏替换原则:LSP,只要父类出现的地方子类就能出现,类中调用其他类时务必使用其接口或父类,如果不能使用则违背LSP原则。 1.子类必须完全实现父类的方法。2.子类可以有自己的个性。3.覆盖或实现父类的方法时输入参数可以被放大。4.覆 盖或实现父类的方法时输出结果可以被缩小。
依赖倒置原则:Dependence Inversion Principle,接口或抽象类不依赖于实现类、实现类依赖接口或抽象类、模块间的依赖通过抽象 发生,实体类中不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的。依赖的三种写-->1.构造函数传 递依赖对象。2.setter方法传递依赖对象。3.接口声明依赖,接口注入。ps:每个类尽量有接口或者抽象类、变量的表 面是接口或者抽象类、任何类都不应该从具体类派生、尽量不要覆写基类中的方法、结合里氏原则使用。
单一职责原则:Single Responsibility Principle,一个类只做同一职责内的事情。做好职责划分,但是这个职责是模糊的,只有经验 上去了,才可以有更深的理解。做到尽量遵循。
接口隔离原则:Interface 1.不要依赖不需要的接口。2.依赖关系尽量在最小接口上。接口分为两种--实例接口在Java中我称其为类 对象、类接口也就是用interface修饰的类。对接口进行细分不要让接口过于臃肿保证它的纯洁性。接口尽量小但是 要有限度、接口要高内聚所以尽量少公布public方法对外少承诺。但是接口的定义也是没有一个量化标准需要因时 而异。
迪米特法则:Law of Demeter LoD最少知道原则。低耦合,只和直接的类(组合、聚合、依赖..)交流、耦合度不要太过牢固、如 果一个方法放在本类既不增加类关系也不对本类产生任何负面影响,就放置在本类中。核心观念类间解耦,弱耦合, 提高复用率,使项目结构清晰同时做到高内聚低耦合。
开闭原则:对一个模块或者类开放扩展,闭合修改。可以提高复用率、提高可维护性、面向对象开发的要求。是其他五个原则的总 结。