设计模式六大原则(一)单一职责原则

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/85993971

设计模式六大原则

定义:单一职责原则又称单一功能原则,它规定一个类或模块应该有一个单一的功能,并且一个功能应该完全由一个类或模块封装起来。

直接举例子:

从网络上请求下来数据,然后储存到本地数据库中,整个需求下来应该是这样的:
在这里插入图片描述
这里网络请求模块,里面1.根据url返回json数据,2.解析json数据,3.储存到本地数据库。
这样做的问题:

1.逻辑上耦合度太高,无论是修改网络请求、Json解析、db存储,都不能保证不对其他模块产生影响。
2.代码适应能力差,针对每个接口,都要设计一个全套的网络处理结构。
3.当业务庞大后,不宜于维护。

使用单一职责原则改变结构如下:
在这里插入图片描述
这样改变之后:

1.网络解析管理只负责模块的连接,只负责流程逻辑不负责具体实现。
2.网络请求模块只负责网络请求,所有网络请求的配置以及异常判断都在这里。
3.Json解析模块只负责Json解析,String转化为具体的模型,不止可以供db模块使用,也可以供UI模块使用。
4.数据存储模块只负责数据存储,里面涉及拆分模型以及具体的存储。

这样做的好处:

1.解决了耦合度问题,不同模块只与管理模块产生关系,碰到模块协调问题只需修改管理模块逻辑。
2.代码适应能力强,各功能模块也可以复用。
3.易于修改,比方说Json解析出现问题,那么只需要修改Json解析模块就可以了。

单一职责原则有两个必备条件:
1、模块功能单一

如同上面的例子,网络请求只负责网络请求,不负责Json解析和数据存储。

2、改变模块的原因唯一

如同上面的例子中的网络请求模块,当数据库存储方式发生改变,网络请求不需要改变,Json解析规则发生改变,网络请求也不需要改变,当切仅当网络请求规则发生改变的时候,才需要修改网络请求模块。

猜你喜欢

转载自blog.csdn.net/yangshuaionline/article/details/85993971