单一职责原则好难理解啊…难道有多个功能的类都是违背这个原则的吗?比如游戏中一个场景管理器,又要可以增加场景节点,又要可以搜索可见场景节点,又要把这些功能发送到渲染器…这样就违背原则了?不解啊…疑惑啊…ogre(图形引擎)里面的场景管理器就具备这样的功能,ogre是一个成熟的设计了,难道它在这个方面设计有不妥的地方?或者是我的理解有偏差呢?求指导啊~~~路过的大虾给解释一下吧~~~
PS:单一职责原则(srp):就一个类而言,应该仅有一个引起它变化的原因。
单一职责只是一个设计原则,在实际项目开发中,这个定义不是那么的明确,很难做准确的界定。即使是成熟的项目,设计也只能说在他的使用场景中是合理的,如果换一个角度思考,设计也许就是不合理的,不用纠结于这类问题。
解决这个问题,可以尝试在设计完成后,做一次测试,看看影响他的因素有多少,如果不合理再进行重构,不要奢求一次设计就十分完美。
看你的回答很舒服~
@今昭: 呵呵,谢谢支持哦
单一职责,就在在软件设计中细化方法、类,重构出功能单一的方法、类。
其实你说的这些功能就可以设计为几个类和方法了。