zoukankan      html  css  js  c++  java
  • Java设计模式菜鸟系列(二十二)中介者模式建模与实现

    转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40027109


    中介者模式(Mediator):主要用来减少类与类之间的耦合的,由于假设类与类之间有依赖关系的话。不利于功能的拓展和维护,由于仅仅要改动一个对象,其他关联的对象都得进行改动。

    一、uml建模:



    二、代码实现

    /**
     * 中介者模式(Mediator):主要用来减少类与类之间的耦合的,由于假设类与类之间有依赖关系的话。
     * 
     * 不利于功能的拓展和维护。由于仅仅要改动一个对象,其他关联的对象都得进行改动。

    * * 演示样例:以下以房屋(出租)中介为例 */ interface Mediator { void createMediator(); void recommendHouse(); } /** * 咱(User)让中介帮我们推荐房子 * * 所以咱须要持有一个中介实例 */ abstract class User { private Mediator mediator; public User(Mediator mediator) { this.mediator = mediator; } public Mediator getMediator() { return mediator; } public abstract void selectHouse(); } class ZhangSan extends User { public ZhangSan(Mediator mediator) { super(mediator); // TODO Auto-generated constructor stub } @Override public void selectHouse() { System.out.println("张三在选房子..."); } } class LiSi extends User { public LiSi(Mediator mediator) { super(mediator); // TODO Auto-generated constructor stub } @Override public void selectHouse() { System.out.println("李四在选房子..."); } } /** * 房屋中介:中介向要找房子的那些人推荐房子,由他们选择自己想要的房子。

    * * 因此中介得持有那些实例。才有可能把房子租出去。 */ class MyMediator implements Mediator { private User zhangsan; private User lisi; public User getZhangsan() { return zhangsan; } public User getLisi() { return lisi; } @Override public void createMediator() { zhangsan = new ZhangSan(this); lisi = new LiSi(this); } /** * 中介向要找房子的那些人推荐房子。由他们选择自己想要的房子 */ @Override public void recommendHouse() { zhangsan.selectHouse(); lisi.selectHouse(); } } /** * client測试类 * * @author Leo */ public class Test { public static void main(String[] args) { Mediator mediator = new MyMediator(); mediator.createMediator(); mediator.recommendHouse(); } }


    三、总结

    中介者模式仅仅需关心和Mediator类的关系,详细类与类之间的关系及调用交给Mediator即可。


  • 相关阅读:
    PT100高精度测温电路 AD623+REF3030(转)
    STM32|4-20mA输出电路(转)
    串口通讯数据处理算法分析与实现(转)
    stm32_CAN总线知识(转)
    图像的灰度级和动态范围(转)
    图像bayer格式介绍以及bayer插值原理CFA(转)
    用oracle建表,必须注意Oracle 关键字(保留字)
    爬虫的定向爬取与垂直搜索
    开源的网络爬虫以及一些简介和比较
    SQL中的等号、IN、LIKE三者的比较
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7272861.html
Copyright © 2011-2022 走看看