面向对象设计原则——单一职责原则

        单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。
定义:单一职责原则(Single Responsibility Principle,SRP),一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

       单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的类中,如果多个职责总是同时发生改变则可将它们封装在同一类中。单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关实践经验。

实例分析:
例如有一个类有以下设计:

图中connectionDatabase() 用来连接数据库,queryData()查询数据库,displayInterface()显示数据,现在用单一职责对其进行重构:

       FunctionManager类承担了太多的职责,既包含数据库相关方法,又包含数据显示的方法,如果在其它类中也需要连接数据库或者使用queryData()方法查询客户信息,则难以实现代码重用。无论是修改数据库连接方式还是修改图表显示方式都需要修改该类,它不止一个引起它变化的原因,违背了单一职责原则,因此需要对该类进行拆分,使其满足单一职责原则,该类可以拆分成三个部分:
  • DBUtil:负责连接数据库,包含connectionDatabase();
  • OperationDAO:负责操作数据库,如增、删、改、查操作,包含queryData();
  • DataChart:负责数据显示,包含displayInterface();

使用单一职责后的结构图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值