设计模式六大原则之单一职责原则

1.1 类的多职责设计

      单一职责原则的英文为Single Responsibility Principle,简称SRP。它的定义是对于类只有且只有一个原因可以引起类的变化,即一个类只负责一个职责。当一个类承担多个职责时,那么任何一个职责的变化都会成为类改变的原因,多个不同的职责耦合到一起,当需求变化时,这样脆弱的设计会回带来很多负面的影响。以近期做的一个项目的用户管理为例,包括新增用户、删除用户、修改用户信息(密码、邮箱、手机号等)、新增角色、修改用户角色。类图如图1所示:

                                                                                                           图1 用户信息类图

初步一看这个设计没毛病,把用户的属性和行为放在一个类中,但是按着单一职责原则,这样的设计犯了很严重的错误。

1.2 类的单一职责设计

设计的一个类只用于完成特定的业务,这个就是高内聚。耦合就是类之间的互相调用关系,如果耦合很强,互相牵扯调用很多,那么会牵一发而动全身,不利于维护和扩展。    根据单一职责原则,将属性和业务分离,设计出类图如图2。

                                                                                                         图2 属性行为分离

1.3 总结

 类的单一职责设计从原则上出发确实是一个优秀的思想,但在实际运用过程中可能困难重重,比如项目的时间安排、编码人员的水平、职责划分等,但尽管有困难,但我们在设计时最好做到职责单一,设计方面没有最好的只有更好的。

原文地址:https://www.cnblogs.com/smilejeffery/p/6802516.html