经理类的目的是什么?

red*_*ory 1 oop actionscript-3

我看到许多标有"经理"的课程.如何使用经理课程?

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

var m:Mananger = new ManagerClass();

m.doSomething();
Run Code Online (Sandbox Code Playgroud)

bit*_*onk 7

管理器类是代码的常见倾销场,不知何故不适合其他地方.他们也倾向于成为上帝阶级.


DVK*_*DVK 5

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

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

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

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

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

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

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


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


max*_*xmc 5

有些人认为经理是代码的气味

  • 鲍伯叔叔也这样做。http://programmers.stackexchange.com/questions/17100/clarify-the-single-responsibility-principle (3认同)