[设计原则]单一职责原则

单一职责原则

1.定义

  • 单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
  • 另外一种定义方式:就一个类而言,应该仅有一个引起它变化的原因。

2.解析

  • 单一职责原则是最简单的面向对象设计原则,用于控制类的粒度大小(详细程度)。
  • 一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性越小,而且如果一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。应该将这些职责进行分离,将不同的职责封装在不同的类中,将不同的变化原因封装在不同的类中。
  • 类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其属性来体现,而行为职责通过其方法来体现。
  • 单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手法中都能找到它的存在,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关重构经验。

3.实例

  • 案例:
    某软件公司开发人员针对CRM(Customer Relationship Management,客户关系管理)系统中的客户信息图表统计模块提出了如图所示的初!始设计方案。
    在这里插入图片描述

    GetConnection()方法用于连接数据库,
    FindCustomers()用于查询所有的客户信息,
    CreateChart()用于创建图表,
    DisplayChart()用于显示图表。

  • 分析:
    CustomerDataChart类承担了太多的职责,如其他类中也需要连接数据GetConnection或者使用FindCustomers方法查询所有的客户信息,则难以实现代码的重用。无论是修改数据库的连接方式,还是修改图表显示方式都需要修改该类,它拥有不止一个引起变化的原因,违背了单一职责原则,因此需要对该类进行拆分,使其满足单一职责原则。

  • 重构:
    现使用单一职责原则对其进行重构,如下:
    第

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bindebug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值