一、概念
The Single Responsibity Priciple
就一个类而言,应该仅有一个引起它变化的原因。一个类只负责一个功能领域中的相应职责。
二、理解
一个类不能太“累”!太累效率就会低,可复用性较低,比如说我们的路由器,它只需要知道这个数据从哪来到哪去就够了,如果再让他查看里面有什么内容,是否出错,就将这一部分的时间浪费了,降低了效率。
下面通过一个简单实例来进一步分析单一职责原则:
现使用单一职责原则对其进行重构。
在图1中,CustomerDataChart类承担了太多的职责,既包含与数据库相关的方法,又包含与图表生成和显示相关的方法。如果在其他类中也需要连接数据库或者使用findCustomers()方法查询客户信息,则难以实现代码的重用。无论是修改数据库连接方式还是修改图表显示方式都需要修改该类,它不止一个引起它变化的原因,违背了单一职责原则。因此需要对该类进行拆分,使其满足单一职责原则,类CustomerDataChart可拆分为如下三个类:
(1) DBUtil:负责连接数据库,包含数据库连接方法getConnection();
(2) CustomerDAO:负责操作数据库中的Customer表,包含对Customer表的增删改查等方法,如findCustomers();
(3) CustomerDataChart:负责图表的生成和显示,包含方法createChart()和displayChart()
使用单一职责原则重构后的结构如图2所示:
原文链接:https://blog.csdn.net/lovelion/article/details/7536542