管理类的目的是什么?

问题描述 投票:2回答:5

我看到很多标记为“ Manager”的类。如何使用经理类?

例如,它是否被这样的合成所使用?:

var m: Mananger = new ManagerClass();
m.doSomething();
oop actionscript-3 naming-conventions
5个回答
5
投票

类似的类用于管理另一个类的一组对象,这些对象通常是资源。

例如,假设您有一个数据库连接池,每个数据库连接都由DBConnection类的对象表示。

如果您的代码需要通过连接池连接到DB,它将仅向DBConnection_Manager类请求新的连接。我们为什么需要经理班?

Manager类将查询其DBConnection对象的列表,并确定其中是否有未分配的对象,并返回一个。如果已全部分配,它将创建一个并添加到池中(受允许的最大连接限制)或将请求放入队列中,或者报告失败。

此功能的所有功能都对调用者完全隐藏-管理池的细节是Manager类的工作。

这只是一个特定的示例,但是其思想是资源管理是集中的,并使用Manager类进行封装,而用户代码仅要求“资源”。

尽管我发现至少有一个这样说的网页,但我不确定这种方法是否有真正的“设计模式”:http://www.eventhelix.com/realtimemantra/ManagerDesignPattern.htm


更新:如果使用动作脚本,则可以使用此类来管理声音,事件监听器或GUI小部件(例如上下文菜单)


8
投票

Manager类是代码在某些地方不适合使用的常见转储场所。它们也往往是god classes


5
投票

[Some认为经理是code smell


3
投票

通常意味着有人正在实现一种设计模式,并且不知道(或不想使用)它的正式名称。您必须阅读代码以得出任何有意义的结论。


1
投票

我认为,在以下情况下应该使用经理类:

© www.soinside.com 2019 - 2024. All rights reserved.