首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

狂言设计模式_中介者模式

2013-03-21 
大话设计模式_中介者模式以美国和伊拉克通话要通过联合国安全理事会来传递.package com.wzs.design/** *

大话设计模式_中介者模式

以美国和伊拉克通话要通过联合国安全理事会来传递.

package com.wzs.design;/** * 大话设计模式--page262 中介者模式 *  * @author Administrator *  */public class MediatorPattern {public static void main(String[] args) {UnitedNationsSecurityCouncil unsc = new UnitedNationsSecurityCouncil();USA c1 = new USA(unsc);Iraq c2 = new Iraq(unsc);unsc.setColleague1(c1);unsc.setColleague2(c2);c1.declare("不准研制和武器,否则要发动战争!");c2.declare("我们没有核武器,也不怕侵略.");}}// 国家类abstract class Country {protected UnitedNations mediator;public Country(UnitedNations mediator) {this.mediator = mediator;}}// 美国class USA extends Country {public USA(UnitedNations mediator) {super(mediator);}public void declare(String message) {mediator.declare(message, this);}public void getMessage(String message) {System.out.println("美国获得对方信息:" + message);}}// 伊拉克class Iraq extends Country {public Iraq(UnitedNations mediator) {super(mediator);}public void declare(String message) {mediator.declare(message, this);}public void getMessage(String message) {System.out.println("伊拉克获得对方信息:" + message);}}// 联合国机构类abstract class UnitedNations {public abstract void declare(String message, Country colleague);}// 联合国安全理事会class UnitedNationsSecurityCouncil extends UnitedNations {private USA colleague1;private Iraq colleague2;// 美国public void setColleague1(USA colleague1) {this.colleague1 = colleague1;}// 伊拉克public void setColleague2(Iraq colleague2) {this.colleague2 = colleague2;}@Overridepublic void declare(String message, Country colleague) {if (colleague == colleague1) {colleague1.getMessage(message);} else {colleague2.getMessage(message);}}}


1楼adam_zs昨天 21:14
[code=java]n输出结果:n伊拉克获得对方信息:不准研制和武器,否则要发动战争!n美国获得对方信息:我们没有核武器,也不怕侵略.nn[/code]

热点排行