最简单直接地理解Java软件设计原则之单一职责原则

理论性知识

 定义

单一职责原则, Single responsibility principle (SRP);

一个类,接口,方法只负责一项职责;

不要存在多余一个导致类变更的原因;

优点

  • 降低类的复杂度
  • 提高类的可读性
  • 提高系统的可维护性
  • 降低变更引起的风险

特别说明

在我们的实际开发中,很多类或者方法都不完全符合单一职责原则。其实设计原则就是一种指导思想, 并不是要求开发人员必须遵守。根据实际业务需求,在能满足的情况下,尽可能去满足设计原则,这样才更有利于项目的后期维护和优化。

代码实战

 非单一职责代码demo

首先还是定义一个手机接口,如下图

最简单直接地理解Java软件设计原则之单一职责原则

 

定义一个手机类,如下图

最简单直接地理解Java软件设计原则之单一职责原则

 

单一职责代码demo

上述demo中,手机接口包含属性方法和功能方法。为满足单一职责,需要进行拆分。

定义一个手机属性信息接口,如下图

最简单直接地理解Java软件设计原则之单一职责原则

 

定义一个手机行为接口,如下图

最简单直接地理解Java软件设计原则之单一职责原则

 

定义一个手机类,实现上图中两个接口,如下图

最简单直接地理解Java软件设计原则之单一职责原则

 

这样做的好处就是可以单独实现属性信息接口或行为接口。

下面继续看一个方法级别的单一职责demo

最简单直接地理解Java软件设计原则之单一职责原则

 

序号1对应的方法是更新姓名和地址,

序号2对应的方法是根据条件判断更新姓名或地址,

序号3对应的方法是更新姓名,

序号4对应的方法是更新地址,

很显然,1和2不符合单一职责。3和4符合单一职责。

 写在最后

上面的代码和举例,就是为了简单直接说明单一职责原则设计原则。不要过度分析细节。

posted @ 2021-02-01 09:23  蜗牛学编程  阅读(63)  评论(0编辑  收藏  举报