Java 实现中介者(Mediator)模式

类图

public interface IMediator {

	public void createMediator();

	public void work();
}
/**
 * 中介、调节实际上需要交互的两个元素,让其松耦合
 * @author stone
 *
 */
public class Mediator implements IMediator {

	private XmlCode xmlCode;
	private XmlPreview xmlPreview;

	@Override
	public void createMediator() {
		this.xmlCode = new XmlCode();
		this.xmlPreview = new XmlPreview();
	}

	@Override
	public void work() {
		this.xmlCode.work();
		this.xmlPreview.work();
	}

}
public interface IWork {
	void work();
}
/**
 * 本类描述Android布局里的 预览界面
 * 在预览界面中拖拽组件,代码会变化
 * @author stone
 *
 */
public class XmlPreview implements IWork {

	@Override
	public void work() {
		System.out.println("预览里的组件变化了");
	}

}
/**
 * 本类描述Android布局里的 xml代码
 * 加入了代码,预览界面会变化
 * @author stone
 *
 */
public class XmlCode implements IWork {

	@Override
	public void work() {
		System.out.println("加入布局代码");
	}

}
/*
 * 中介者(Mediator)模式 	Mediator的意思是中介者、调节者、传递物,顾名思义,这个模式在程式中必然负担一个中介、调节、传递的工作
 * 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
 */
public class Test {
	public static void main(String[] args) {
		IMediator mediator = new Mediator();
		mediator.createMediator();//内部创建元素,维护元素
		mediator.work();//执行内部元素的work接口
	}
}

打印

加入布局代码
预览里的组件变化了
时间: 2024-10-29 12:45:55

Java 实现中介者(Mediator)模式的相关文章

重构if...else...或者switch程序块 为 中介者(Mediator)模式.的思考

http://www.cnblogs.com/insus/p/4142264.html 首先普世的编程架构好坏评判是SOLID(单一功能.开闭原则.里氏替换.接口隔离以及依赖反转) 具体来说,就是当有需求的curd时候,代码应该1)涉及的文件尽可能的少2)修改的文件行数尽可能的少3)修改的文件行块间距不应该太长,避免程序员在一个文件中来回移动.鼠标点击数尽可能少.避免影响思路.4)不应该影响其他模块的.这样就不必全面回归测试.5)鲁棒性:即使输入错误,也不应该系统崩溃. 那么,我们来看看这篇洋洋

Java中介模式(Mediator模式)

Mediator定义:用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator模式/中介模式 各个对象之间的交互操作非常多,每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性. 如何使用中介模式 首先 有一个接口,用来定义成员对象之间的交互联系方式:    public inte

c++ 行为型模式-中介者(Mediator)

1) 意图 用一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显示地相互应用,从而使其耦合松散,并且可以独立地改变它们之间的交互 2) 结构 其中: Mediator定义一个接口用于各同事对象的通信 ConcreteMediator 通过协调各个Colleague 类对象实现协助行为 Colleague 知道它的中介者对象,每个Colleague 类对象在需要与其他Colleague 通信的时候与它的中介者通信 3) 适用性 一组对象通信方式复杂,产生的相互依赖关系结构混乱且难以理解

【图解设计模式】Mediator模式

组员向仲裁者报告,仲裁者向组员下达指示.组员之间不再相互询问和相互指示. 示例 一个GUI应用程序,它展示了一个登录对话框,用户在其中输入正确的用户名和密码后可以登录. 可以选择作为游客访问(Guest)或是作为用户登录(Login) 作为用户登录时,需要输入正确的用户名(Username)和密码(Password) 点击OK按钮可以登录,点击Cancel按钮可以取消登录 类图 时序图 Mediator接口 1234 public interface { public abstract void

Mediator 模式

在面向对象系统的设计和开发过程中,对象之间的交互和通信是最为常见的情况,因为对象间的交互本身就是一种通信.在系统比较小的时候,可能对象间的通信不是很多.对象也比较少,我们可以直接硬编码到各个对象的方法中.但是当系统规模变大,对象的量变引起系统复杂度的急剧增加,对象间的通信也变得越来越复杂,这时候我们就要提供一个专门处理对象间交互和通信的类,这个中介者就是 Mediator 模式 1 //////////Colleage.h/////////////////////////////////////

Behavioral模式之Mediator模式

1.意图 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互. 2.别名 无 3.动机 面向对象设计鼓励将行为分布到各个对象中.这种分布可能会导致对象间有许多连接.在最坏的情况下,每一个对象都知道其他所有对象. 4.适用性 以下情况使用Mediator模式: 一组对象以定义良好但是复杂的方式进行通信.产生的相互依赖关系结构混乱且难以理解. 一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象. 想定制一个分布

Mediator模式

参考资料<大话设计模式> Mediator(中介者)模式: 使各个对象不需要显式的相互调用,从而使其耦合松散. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ds_mediator { class Program { static void Main(string[] args) { ConcreteMediator m = new Concrete

【行为型】Mediator模式

中介者模式目的是将对象间的交互封装在一个对象中,从而使用各对象间的相互依赖解耦,并可以独立更改对像间的交互.在实际项目开发过程中,因某些原因(如:业务逻辑处理不当或设计不当等)使得多个不同对象间需要相互(引用)访问,无形当中使得原本几个不相干的或相对较为独立的几个模块产生了相互依赖.随着依赖程度的恶化,后期项目维护将是十分被动的.举个大家可能平时都有遇到过的例子,A界面点击了某个按钮,导致B界面需要关掉.许多人(尤其是新手程序员)总是在A界面的按钮事件响应时调用了B界面的close()行为.接着

Mediator模式(C++实现)

主要参考<大话设计模式>和<设计模式:可复用面向对象软件的基础>两本书.本文介绍中介者模式的实现. 中介者模式:What it is:Define an object that encapsulates how a set of objects interact. Promotes loose coupling by keeping objects from referring to each other explicitly and it lets you vary their