经理类的目的是什么?

时间:2011-01-19 16:11:11

标签: actionscript-3 oop

我看到许多标有“经理”的课程。如何使用经理类?

例如,它是否被组合使用,如:

var m:Mananger = new ManagerClass();

m.doSomething();

5 个答案:

答案 0 :(得分:7)

管理器类是代码的常见转储基础,不知何故不适合其他地方。他们也倾向于成为god classes

答案 1 :(得分:5)

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

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

如果您的代码需要通过连接池连接到DB,它只会向DBConnection_Manager类询问新连接。为什么我们需要经理课?

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

所有这些功能都完全隐藏在调用者之外 - 管理池的细节是Manager类的工作。

这只是一个具体的例子,但其想法是资源管理是集中的,并且使用Manager类进行封装,用户代码只是要求“资源”。

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


更新:在动作脚本的情况下,这样的类可用于管理声音,事件监听器或GUI小部件(例如上下文菜单)

答案 2 :(得分:5)

Some认为经理人是code smell

答案 3 :(得分:3)

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

答案 4 :(得分:1)

在我看来,经理类应该在这些条件下使用:

  1. 需要处理多个对象
  2. 将对象列表传递给调用者是不够的,您应该提供一些高级功能,例如选择maxmin一个
  3. 要管理的对象应属于一个类(易于管理)