中介者模式(Mediator)

1、本质:封装交互

2、使用环境:

    1、一个对象的操作会引起其他相关对象的变化

    2、这个对象不希望自己处理这些关系

    3、交给中介者处理

3、示意图:

    

4、功能:

    1、把对象之间的交互关系集中处理

    2、松散对象之间的交互耦合

5、简化中介者模式:          --广义中介者

    1、去掉同事类的父类,让任意需要相互交互的对象都成为同事

    2、不需要定义Mediator接口,把具体的中介者对象实现成单例

    3、同事对象不需要持有中介者对象的引用

    4、中介者也不需要持有同事对象,在具体方法中创建、获取或接受参数

6、例子:

    一个部门中有多个人员,一个人员属于多个部门

    1、当一个人员离职时,需要删除人员信息和修改相关部门信息

    2、当一个部门撤销时,需要删除部门信息和修改各人员信息

7、优点:

    1、松散耦合

    2、集中控制交互

    3、多对多变成一对多

8、缺点:

    交互过度集中化,当交互多而复杂时,将导致中介者对象难以维护和管理

posted @ 2014-04-16 10:05  无名十四  阅读(160)  评论(0)    收藏  举报