[OOD设计原则]一. 单一职责原则(SRP)

[OOD设计原则]一. 单一职责原则(SRP)

        单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。它的英文缩写是SRP,英文全称是Single Responsibility Principle。
        其实单一职责原则的意思就是开发人员经常说的"高内聚、低耦合"。也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。在设计模式中,所有的设计模式都遵循这一原则。


例如: 
有一个需要解析bmp文件和png文件, 并提取图像数据的功能.

都是解析图像文件, 如果把两个解析功能合并在一个类中, 那么, 假设bmp文件的解析流程已经很优化很稳定了, 当修改png解析流程时, 这个类被修改过了. 这样子是不是增加了bmp文件解析流程被改错的机会?
所以把应该分成两个类.

就是河水不犯井水, 任何一方受污染了, 使得另一方受到影响, 这是不好的. 

但是这种"单一职责"也不是一种绝对的单一, 而是一种相对的单一, 要从不同的层面去理解.


就上面例子(有一个需要解析bmp文件和png文件的功能), 设计一个图像文件解析类, 这也是单一功能, 对于类的使用者来说, 不管解析的是bmp文件还是png文件, 最终目的就是拿到"图像数据".

我觉得从类的使用这角度, 这个类是单一功能的. 而再这个类的实现角度, 就需要把bmp文件解析和png文件的解析分开了.
所以分成bmp解析类和png解析类, 图像文件解析类使用这两个类.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值