Java设计模式

设计模式:1-设计原则

2020-05-21  本文已影响0人  大栗几

文章来源本人的博客:http://codelifeliwan.github.io/ 转载请注明出处
查看[设计模式]系列内容请点击:https://www.jianshu.com/nb/45937362

所有的设计原则无非是从以下几个出发点考虑:
降低不同模块之间耦合度

1、单一职责原则

定义:
一个类应该只有一个职责

理解:
比如A类是一个处理业务逻辑的类,当B类要使用A类的某个方法时必须包含加载A类中的所有方法,若A类中的无关的方法过多则会造成一定的资源浪费,同时增加类的复杂度等。

应用:
最常见的应用是在进行数据库操作的时候数据库访问层和业务逻辑层的分开:负责数据库访问的类只负责数据库访问,完全不关心外界的逻辑处理,而负责逻辑处理的类只负责逻辑处理而不关心数据库到底是如何访问的。

2、里氏替换原则

定义:
所有使用父类的地方都应该能够替换成其子类,并且替换以后不会产生任何异常,反之不成立

理解:
在Java语言中普遍使用的继承机制,不难理解

好处:

缺点:

3、依赖倒置原则

定义:
有以下两层含义:

应用:
司机开车:司机需要开车,那么对于总体来说,司机既可以开宝马也可以开奔驰,但是完全不依赖于开什么车。同样,宝马可以被司机A开也可以被司机B开,宝马的制造商只需要让它能被人开而完全不需要管到底是被谁开(兰博基尼除外)。它们之间通过统一规范接口进行连接:即司机要开车,车要被司机开。

4、接口隔离原则

定义:
客户端不应该依赖它不使用的接口。
类间的依赖关系应该建立在最小的接口上

理解:
若A类继承了B和C接口,但是A类只需要B接口,那么A类也必须实现C接口的所有方法,会造成问题,这条侧重于类和接口的关系。

类之间的依赖关系也需要最少,不需要的方法也去掉,这条侧重于接口内的方法数量。

应用:
电子商务系统中,门户类只需要查询方法,那么提供给门户类的接口中只需要有查询方法,而管理后台类需要增、删、查改的方法,那么提供给管理后台的接口则需要这四个方法,用到什么提供什么,用不到的坚决不要。

5、迪米特法则

定义:
一个对象应该对其他对象尽可能少的了解

理解:
只与你最直接的朋友通信
不要和陌生人说话
每个类对其他类都只需要最少的了解,保护“隐私”不被偷窥和破坏

应用:
若有三个类A、B和C,且A和B是相关类,B和C也是相关类,A和C毫无关系,那么A若想与C通信就必须经过B类的“介绍”才行。

6、开闭原则

定义:
一个软件实体或者类应该对扩展开放,对修改关闭

开闭原则通过以下几个方面来体现:

上一篇 下一篇

猜你喜欢

热点阅读