- 单一职责原则,也称为单一功能原则
- 英文Single Responsesiblility Principle缩写SRP
- 是面向对象设计中的一个重要原则
- 一个类,应该有且只有一个引起变化的原因
- 在程序设计中,尽量把不同的职责,放在不同的类中,即把不同的变化原因,封装到不同的类中.
单一职责原则(SRP:Single responsibility principle)又成单一功能原则,面向对象五个基本原则(SOLID:SRP单一责任原则,OCP开放封闭原则,LSP里氏替换原则,DIP依赖倒置原则,ISP接口分离原则)之一.它规定一个类应该只有一个发生变化的原因.该原则由罗伯特·C·马丁(RobertC.Martin)于<<敏捷软件开发:原则、模式和实践>>一书中给出的.马丁表示此原则是基于汤姆·狄马克(Tom DeMarco)和Meilir Page-Jones的著作中的内聚性原则发展出的.
单一职责原则告诉我们:一个类不能太"累"!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个责任变化时,可能会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的类中,如果多个职责总是同时发生改变则可将他们封装到同一类中.
之所以会出现单一职责原则就是因为在软件设计时会出现一下类似场景:T负责连个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2 功能发生故障.也就是所职责P1和P2被耦合在一起了.
解决办法:遵守单一职责原则,将不同的职责封装到不同的类或模块中.分别建立两个类T1、T2,使T1完成职责P1功能、T2完成职责P2功能.这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险.
网友评论