解析设计模式(二)--单一职责原则

单一职责原则是面向对象设计的重要原则之一,旨在确保类有且仅有一个引起它变化的原因。本文探讨了这一原则的由来、好处及应用实例,并强调了遵循此原则对于提升软件质量的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认识单一职责原则

单一职责原则是面向对象设计中最重要的原则之一,而面向对象最基础的东西就是类和对象的使用,而单一职责可以说是对类和对象的一种要求,也就是要求类应该有且仅有 一个引起它变化的原因。

开闭原则是指一个类,只有一个引起它变化的原因。有且只有一 个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。

单一职责原则由来

谈到单一职责原则的由来不得不说面向对象,也不得不说需求是在不断变化,因为软件需求唯一的不变的真理就是软件需求一定会变化,因为需求变化,所以我们就要用到面向对象的设计思想,而面向对象的要求就是复用、能用最小的代价应对变化、不用改变现有代码就能满足扩展(其实这就上一篇博客中说的 《开闭原则》 )。在面向对象的要求下,许多人在这些问题上思考了很多,也花费了很大努力来实现这几点,所以单一职责原则就在这样的背景下诞生了。

单一职责原则的好处

① 单一职责原则提供了一个编写程序的标准,也就是让类的复杂性降低,实现什么职责都有清晰明确的定义

② 在可读性和可维护性上得到了提高,因为类的职责单一,对类的阅读,类之间的调用关系都是清晰明确的。

项目中分析单一职责原则

在这里引用一个比较经典的例子,就是图形计算程序和图形绘制程序调用Area()方法和Draw()方法的例子。

例子出处《 开篇-模式和原则 》:

clip_image002

图形计算程序只使用了正方形的Area()方法,永远没有使用Draw()方法,而它却和draw方法关联起来,这就违反了单一指责原则,如果将来有一天图形绘制程序导致draw发生变化,那就影响到了本来毫无关系的图形计算程序。

所以我们应该将不同的职责分配给不同的类,让每个类的职责单一,隔离变化,如图:

clip_image004

常言道

常言道:该你管的你管,不该你管的你别插手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值