我发现forums论文:名称中包含“经理”的类型 - 重构的候选人?
如果你有在 名“经理人”一类,它是 重构的候选。
一个答案:
我知道它被认为是一个代码, “闻”
所以......为什么呢?这篇论文是否正确?
那里有很多经理。例如,Ogre3d使用它们很多,而且这个引擎真的有一个干净的架构。
我发现forums论文:名称中包含“经理”的类型 - 重构的候选人?
如果你有在 名“经理人”一类,它是 重构的候选。
一个答案:
我知道它被认为是一个代码, “闻”
所以......为什么呢?这篇论文是否正确?
那里有很多经理。例如,Ogre3d使用它们很多,而且这个引擎真的有一个干净的架构。
Ogre3d使用它们很多,这个引擎真的有一个干净的架构。
它除了“经理”类以外无处不在。以DefaultSceneManager为例。这些是令人难以置信的巨大的,噩梦般的课程“管理”。
问题是,大多数类名称包括“经理”通常违反Single Responsibility Principle。这并非总是如此 - 因为一个班级可能有单一的管理其他方面的责任,但通常情况下,这些班级的名称会有所不同。当一个班级得到“经理”这个名字时,通常是因为班级负责监督所有事情,而且真正应该根据他们的职责分解成不同的部分。
哇,100k代表,你真棒:) – 2010-10-20 23:48:34
请说明管理员类可分解的共同责任?创建,缓存......我承认,'DefaultSceneManager'看起来非常可怕。 – 2010-10-20 23:52:28
@topright:完全取决于所讨论的“经理”级。这个想法是试图让你的课程做一件事,做得很好......不是“管理”你程序的所有操作。这是这里的基本想法。 – 2010-10-21 01:50:50
经理在做很多事情时是一种气味。如果我们仔细研究管理人员正在做的事情,那么您可能会发现服务所做的很多事情。拆分,将它们分离并提取到不同的服务中很有意义。
您还可以找到一些名为后缀为Manager的SRP类,如'ConnectionPoolManager'。这是有道理的,如果它做到了。
也许这可能是一个好主意,请问在gamedev论坛上发布这个消息的人为什么这么想? – 2010-10-20 23:31:54
这是个好主意! :)可能最后这是一个很好的注册动机。 :) – 2010-10-20 23:54:20
该主题已经退役。 – 2010-10-21 14:53:04