单一职责原则(SRP)

摘要:
就一个类而言,它的改变应该只有一个原因。如果一个类有太多的责任,这相当于耦合这些责任。职责的改变可能会削弱或抑制该类完成其他职责的能力。这种耦合将导致脆弱的设计,当发生变化时,设计将遭受意外损坏。软件设计真正需要做的是发现责任并将这些责任彼此分离。如果你能想到不止一个改变班级的动机,那么这个班级就有不止一个责任。

就一个类而言,应该仅有一个引起它变化的原因。

如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责能力。这种耦合会导制脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。

软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。

如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。

免责声明:文章转载自《单一职责原则(SRP)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇系统接口权限设计如何使用JDK自带工具JConsole下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

office 2016 专业版 删除部分组件

删除Office2016 Professional Edition####1中的一些组件。打开控制面板。2.单击此选项。3.找到Office2016并右键单击以选择更改。4.选择并确认。5.选择要删除的组件(以Access为例)。6.单击此处。7.单击“继续”。8.等等。9.完成此方法并不是真正删除模块。这意味着模块已禁用。如果您想在将来重新启用它,请重复前...

Uni-app v-on监听事件

使用标记上的v-on监视事件。缩写为@click common click events方法:方法:{Focus(){console.log;},blur(){console.log;},confirm(){console.log;},click(){console.log;},tap(){console.log;},longpress(){console....

SpringBoot源码深度解析

Spring开源框架解决了企业开发的复杂性,简化了AOP的开发,IOCSpring配置越来越多,不易管理==如何自动配置Springboot,核心原则!Java领域最流行的技术!公司,如何演变结构!...

Corn表达式

CronTriggerCronTrigger通常比SimpleTrigger更有用。如果您需要基于日历的概念,而不是SimpleTrigger完全指定的时间间隔,则重复启动工作的时间表。CronTrigger,您可以指定触发器计划,例如“每周五中午”、“每工作日9:30”,甚至“每周一上午、周三和周五9:00和10:00每五分钟”。即使如此,就像Simple...

Unreal Engine is exiting due to D3D device being lost

先保证显卡驱动最新,然后打开显卡控制面板,关掉“优化以提高计算性能”:参考的是游戏玩家的经验总结:黄卡驱动“优化以提升计算性能”疑问,附简单测试其他常规解决方案:1.[Solved]UnrealEngineisexitingduetoD3Ddevicebeinglost2.由于D3D设备丢失,如何解决虚幻引擎闪退问题?...

ZFS文件系统及Freenas介绍

作为OpenSolaris开源计划的一部分,ZFS于2005年11月发布。它被Sun称为终极文件系统,已经积极开发了10年。ZFS的最大优点之一是,当将其他磁盘添加到池中时,现有文件系统可以自动增长。ZFS使用快照来跟踪文件系统中的更改。5.数据完整性验证和自动修复当新数据写入ZFS时,将创建数据的校验和,从而允许文件系统分叉到新数据集中。...