组合复用原则
多用组合, 少用继承 , 用组合代替继承 ,比如在java 分层设计中, service需要用dao和其他service通过注入组合,而不是通过继承实现 。 组合复用关键需要找出是Has-A(包含A)还是 IS-A(是A) 关系 , HAS-A 用注入组合A,IS-A 用继承A实现 。
依赖倒置
依赖倒置的是指代码层依赖于另一个对象的时候 , 最好依赖于对象的抽象接口,不要依赖具体。这样的好处就是可以通过多肽实现多种实现。 就像我们的Service 一般依赖另外一个Service 的接口实现, Service一般依赖Dao的接口, 当Dao 有mySQl 和oracel的多种实现, 只要通过依赖不同的具体实现即可,无需修改Service代码。还有就是高层模块不应该依赖底层模块, 抽象应该依赖具体。
开闭原则
开闭原则是指应该对扩展开放, 对修改关闭。开闭原则是验证一个好的设计的最终实现。当接到需求变更应该更多的是添加新的类写具体的实现而不是在更多原来的代码上修改, 因为大量修改会给原来的功能带来的bug的风险更大,当时往往一开始就设计出好的遵循开闭原则的代码是比较难的, 更多的是代码慢慢往符合开闭原则的方向变更。
里氏替换
里氏替换是指继承父类不要修改父类非抽象方法, 父类的非抽象方法代表这个方法的基本功能,如果继承该方法代表破坏这个方法的功能,可能引用该方法的地方带来问题。
子类替换父类方法参数应该更加的宽松 , 返回值应该更加的严格 。
迪米特法则
一个对象应该与其他对象保持最少了解, 也就是说类与类之间应该接触耦合关系。
单一职责
一个类应该是单独专注于干一件事情,单一职责需实际项目中折中处理, 类尽量单一,同时又要解决造成类过多的问题。
网友评论