2010-10-20 83 views
3

我发现forums论文:名称中包含“经理”的类型 - 重构的候选人?

如果你有在 名“经理人”一类,它是 重构的候选。

一个答案:

我知道它被认为是一个代码, “闻”

所以......为什么呢?这篇论文是否正确?

那里有很多经理。例如,Ogre3d使用它们很多,而且这个引擎真的有一个干净的架构。

+0

也许这可能是一个好主意,请问在gamedev论坛上发布这个消息的人为什么这么想? – 2010-10-20 23:31:54

+0

这是个好主意! :)可能最后这是一个很好的注册动机。 :) – 2010-10-20 23:54:20

+0

该主题已经退役。 – 2010-10-21 14:53:04

回答

3

Ogre3d使用它们很多,这个引擎真的有一个干净的架构。

它除了“经理”类以外无处不在。以DefaultSceneManager为例。这些是令人难以置信的巨大的,噩梦般的课程“管理”。

问题是,大多数类名称包括“经理”通常违反Single Responsibility Principle。这并非总是如此 - 因为一个班级可能有单一的管理其他方面的责任,但通常情况下,这些班级的名称会有所不同。当一个班级得到“经理”这个名字时,通常是因为班级负责监督所有事情,而且真正应该根据他们的职责分解成不同的部分。

+0

哇,100k代表,你真棒:) – 2010-10-20 23:48:34

+0

请说明管理员类可分解的共同责任?创建,缓存......我承认,'DefaultSceneManager'看起来非常可怕。 – 2010-10-20 23:52:28

+0

@topright:完全取决于所讨论的“经理”级。这个想法是试图让你的课程做一件事,做得很好......不是“管理”你程序的所有操作。这是这里的基本想法。 – 2010-10-21 01:50:50

0

经理在做很多事情时是一种气味。如果我们仔细研究管理人员正在做的事情,那么您可能会发现服务所做的很多事情。拆分,将它们分离并提取到不同的服务中很有意义。

您还可以找到一些名为后缀为Manager的SRP类,如'ConnectionPoolManager'。这是有道理的,如果它做到了。

相关问题