博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式--单一职责原则
阅读量:5256 次
发布时间:2019-06-14

本文共 944 字,大约阅读时间需要 3 分钟。

  设计模式实际是一代代代码人的经验总结。它会教你怎样让最初写好的代码更好维护,更少因为后期需求而改变。  

  There should never be more than one reason for a class to change.

  这是单一职责原则(SRP)的定义。即,有且仅有一个原因会引起类的变更。SRP适用于类,接口,函数,甚至是服务。近来比较火的微服务架构就奉行单一职责原则,每个微服务只有一个职责。这样整个系统架构会非常清晰,排查问题也会比较方便。

  职责单一的后果之一就是职责单位(微服务,类,接口,函数)的数量剧增。据说Amazon,Netflix这些采用微服务架构的网站一个小功能就会调用几十上百个微服务。但是相较于每个函数都是多个业务逻辑或职责功能的混合体的情况,维护成本还是低很多的。

  Laravel框架的分层原理中实际上也有对SRP的体现。每个Model对应一张表,每个Repository的类只操作一个model,其中的每个函数只实现单一功能,而业务逻辑则放在Controller层,这一层可以操作多个Repository从而操作多张表。

  从上边可以看出,SRP中的“单一职责”是个比较模糊的概念。对于函数,它可能指单一的功能,不涉及复杂逻辑;但对于类或者接口,它可能是指对单一对象的操作,也可能是指对该对象单一属性的操作。总而言之,单一职责原则就是为了让代码逻辑更加清晰,可维护性更好,定位问题更快的一种设计原则。

  刚开始学习设计模式,如有理解偏颇,还请各位大牛指正!多谢多谢!

----------------------------------------------------------------------------------------------------------can not see me----------------------------------------------------------------

  给大家推荐秦小波老师的《设计模式之禅》这本书,对理解设计模式很有帮助。

转载于:https://www.cnblogs.com/Evermaple/p/6248663.html

你可能感兴趣的文章
mongodb命令----批量更改文档字段名
查看>>
使用 SharedPreferences 分类: Andro...
查看>>
TLA+(待续...)
查看>>
题解: [GXOI/GZOI2019]与或和
查看>>
MacOS copy图标shell脚本
查看>>
国外常见互联网盈利创新模式
查看>>
Oracle-05
查看>>
linux grep 搜索查找
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
第三次作业
查看>>