`

Java设计模式之Mediator模式

阅读更多

两个类 一个是主播 Anchor 一个是嘉宾 Guest 主播说话的时候,嘉宾要停下,嘉宾只能在主播不说话的时候说话。
package action.mediator1;

public class Anchor {
 private boolean free;

 private Mediator med;
 public Anchor(Mediator md){
  med=md;
 }

 public boolean isFree() {
  return free;
 }

 public void setFree(boolean free) {
  this.free = free;
 }

 public void speak() {
  med.anchorSpeak();
 }

 public void stop() {
  med.anchorStop();
 }
}
package action.mediator1;

public class Guest {
 private boolean free;

 private Mediator med;

 public Guest(Mediator md) {
  this.med = md;
 }

 public boolean isFree() {
  return free;
 }

 public void setFree(boolean free) {
  this.free = free;
 }

 public void speak() {
  med.guestSpeak();

 }

 public void stop() {
  med.guestStop();
 }
}
package action.mediator1;

public class Mediator {
 private Anchor anchor;
 private Guest guest;
 public void regAnchor(Anchor anchor){
  this.anchor=anchor;
 }
 public void regGuest(Guest guest){
  this.guest=guest;
 }
public void anchorSpeak(){
 if(!guest.isFree()){
  guest.stop();
 }
 System.out.println("Anchor is speaking....");
 anchor.setFree(false);
}
public void guestSpeak(){
 if(anchor.isFree()){
  System.out.println("Guest is speaking....");
  guest.setFree(false);
 }
 else{
  System.out.println("Anchor is speaking. Do not interrupt...");
 }
 
}
public void anchorStop(){
 System.out.println("Anchor stop speaking now....");
 anchor.setFree(true);
}
public void guestStop(){
 System.out.println("Guest stop speaking now...");
 guest.setFree(true);
 
}
}
package action.mediator1;

public class Demo {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Mediator med = new Mediator();
  Anchor anchor = new Anchor(med);
  Guest guest=new Guest(med);
  med.regAnchor(anchor);
  med.regGuest(guest);
  anchor.speak();
  guest.speak();
  anchor.stop();
  guest.speak();
  anchor.speak();
 }

}

分享到:
评论

相关推荐

    JAVA设计模式chm文档

    创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: ...设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor

    JAVA设计模式之行为模式

    这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...

    33种JAVA设计模式DEMO

    这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式...

    [Java设计模式(第2版)(Design.Patterns.in.Java).John.Metsker

    《java设计模式(第2版)》通过一个完整的java项目对经典著作design patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为5大类别,以充分展现各个...

    Java设计模式之中介模式(Mediator模式)介绍

    主要介绍了Java设计模式之中介模式(Mediator模式)介绍,本文讲解了为何使用Mediator模式、如何使用中介模式等内容,需要的朋友可以参考下

    java设计模式教程+源代码

    AbstractFactory ( 抽象工厂 ) ...Mediator ( 中介者模式 ) Memento ( 备忘录模式 ) Observer ( 观察者模式 ) State ( 状态模式 ) Strategy ( 策略模式 ) TemplateMethod ( 模板方法 ) Visitor ( 访问者模式 )

    自己整理的java设计模式模式(袖珍版的哦)

    为了更好的网络共享 本人发布的资源一律免费 如有哪个收费了 请告知! 压缩包 包括常用的几种模式: ...设计模式袖珍版之-Mediator(中介者) 设计模式袖珍版之-Singleton(单态) 设计模式袖珍版之-Visitor

    用Java实现23种设计模式

    用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...

    Java设计模式之中介者模式(Mediator Pattern)简介

    主要介绍了Java设计模式之中介者模式(Mediator Pattern),需要的朋友可以参考下

    运用Mediator设计模式的登录对话框

    该案例改编自结城浩《设计模式-java语言中的应用》一书。 This is a program about a login dialog, wich try to illustrate the design pattern of Mediator. The program adapt from the book 《design pattern:...

    HeadFirst 设计模式java源代码

    至于第 14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype,Visitor。第1章还介绍了四个○○基本概念(抽象、封装、继承、...

    Head First 设计模式 JAVA源码

    至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、ChainofResponsibility、Flyweight、Interpreter、Mediator、Memento、Prototype,Visitor。第1章还介绍了四个○○基本概念(抽象、封装、继承、...

    23种java版设计模式源码案例.zip

    23种java版设计模式源码案例.zip 0.目录 创建型模式(creational) 简单工厂(simplefactory) 动态工厂(dynamic) 抽象工厂(abstract) 单例模式(singleton) 建造者模式(builder) 原型模式(prototype) 结构型模式...

    23种java设计模式

    3、行为模式:Iterator(迭代模式)、Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、 Mediator(中介模式)、Interpreter(解释器模式)、Strategy(策略模式)、State 、Observer...

    Mediator 中介模式Java版

    设计模式之中介模式的完整代码实现,Java版

    Java设计模式(含代码)

    Java设计模式 (含有相关源码) Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Adapter:将一个类的接口转换成客户希望的另一个接口,使得原来由于接口不兼容而不能...

    java设计模式-组合模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...

    JAVA经典设计模式大全

    1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 ...

    JAVA23种设计模式代码学习.zip

    获取到【文件夹】名称: mediator_pattern 获取到【文件夹】名称: memento_pattern 获取到【文件夹】名称: observer_pattern 获取到【文件夹】名称: prototype_pattern 获取到【文件夹】名称: proxy_pattern...

    中介者模式(Mediator Pattern)原理图

    中介者模式(Mediator Pattern)是一种行为型设计模式,用于减少对象之间的直接相互依赖,使得对象间的交互通过一个中介者对象来进行协调。在中介者模式中,对象之间不再直接相互调用,而是通过中介者对象来传递消息...

Global site tag (gtag.js) - Google Analytics