Oop 带有“的类型”;经理;以重构候选对象的名义?

Oop 带有“的类型”;经理;以重构候选对象的名义?,oop,architecture,refactoring,naming-conventions,Oop,Architecture,Refactoring,Naming Conventions,我找到了一篇关于: 如果您在中有一个带有“Manager”的类型 名字,它是一个候选人 重构 一个答案是: 我知道这被认为是一种“气味” 所以。。。为什么?这篇论文正确吗 外面有很多经理。例如,Ogre3d经常使用它们,而且这个引擎确实有一个干净的架构 Ogre3d经常使用它们,而且这个引擎的架构非常干净 除了“经理”类之外,它无处不在。请看一个例子。这些课程要“管理”的规模之大令人难以置信,简直是噩梦 问题是,大多数名为“Manager”的类通常会违反。这并不总是正确的——因为一个类可能只负责

我找到了一篇关于:

如果您在中有一个带有“Manager”的类型 名字,它是一个候选人 重构

一个答案是:

我知道这被认为是一种“气味”

所以。。。为什么?这篇论文正确吗

外面有很多经理。例如,Ogre3d经常使用它们,而且这个引擎确实有一个干净的架构

Ogre3d经常使用它们,而且这个引擎的架构非常干净

除了“经理”类之外,它无处不在。请看一个例子。这些课程要“管理”的规模之大令人难以置信,简直是噩梦


问题是,大多数名为“Manager”的类通常会违反。这并不总是正确的——因为一个类可能只负责管理另一个方面,但通常情况下,这些方面的名称会有所不同。当一个类被命名为“经理”时,这通常是因为它是一个监督一切的类,并且实际上应该根据其各自的职责划分为不同的部分。

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


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

也许可以问问在gamedev论坛上发布此消息的人为什么这样想?这是个好主意!:)也许这是一个很好的动机,最终在那里注册。:)哇,10万名代表,你们真是太棒了:)请说出经理阶层可以划分的共同职责?创建、缓存。。。我承认,
DefaultSceneManager
看起来非常可怕。@topright:这完全取决于所讨论的“manager”类。我们的想法是让你的班级做一件事,并且把它做好。。。不是“管理”程序的所有操作。这是这里的基本想法。我同意,这是相对的。例如,如果您遵循此处建议的“方法”,则经理的含义非常明确,并且只负责一项工作。所以正如@Reed也提到的,我们不能总是说“经理”的味道。