(行为型模式二)中介者模式

package com.modle;
/**
 * 中介者模式
 * @author k560
 *
 */

/*需求:产品A要比产品B贵100块,当改A的价格,B的价格也要同步改动,反过来也一样*/
public class Mediator extends AbstractMediator{

	private AbstracProduct productA;

	private AbstracProduct productB;

	public Mediator(AbstracProduct productA, AbstracProduct productB) {
		super();
		this.productA = productA;
		this.productB = productB;
	}

	@Override
	public void aAffectB() {
		this.productB.setPrice(this.productA.getPrice()-100);

	}

	@Override
	public void bAffectA() {
	this.productA.setPrice(this.productB.getPrice()+100);
	}

	public static void main(String[] args) {
		AbstracProduct pa=new ProductA();
		AbstracProduct pb=new ProductB();
		AbstractMediator mediator=new Mediator(pa, pb);
		pa.setPrice(1000,mediator);
		System.out.println(pb.getPrice());
		pb.setPrice(600,mediator);
		System.out.println(pa.getPrice());
	}

}
/*抽象中介者*/
abstract class AbstractMediator {

	abstract  void aAffectB ();

	abstract void  bAffectA ();
}
/*抽象产品*/
abstract class AbstracProduct {

	protected double price;

	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public abstract void setPrice(double price,AbstractMediator mediator);
}

class ProductA extends AbstracProduct {

	@Override
	public void setPrice(double price, AbstractMediator mediator) {
           this.price=price;
           mediator.aAffectB();
	}
}

class ProductB extends AbstracProduct {
	@Override
	public void setPrice(double price, AbstractMediator mediator) {
         this.price=price;
         mediator.bAffectA();
	}
}

时间: 2024-08-29 11:15:33

(行为型模式二)中介者模式的相关文章

行为型模式:中介者模式

文章首发:行为型模式:中介者模式 十一大行为型模式之二:中介者模式. 简介 姓名 :中介者模式 英文名 :Mediator Pattern 价值观 :让你体验中介是无所不能的存在 个人介绍 : Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explici

(17):(行为型模式) Mediator 中介者模式

(17):(行为型模式) Mediator 中介者模式,布布扣,bubuko.com

20行为型模式之中介者模式

概念 Mediator模式也叫中介者模式,是由GoF提出的23种软件设计模式的一种.Mediator模式是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互,Mediator对象起着控制器的作用. 角色和职责 GOOD:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示的相互引用,从而降低耦合:而且可以独立地改变它们之间的交互. Mediator抽象中介者 中介者类的抽象父类. concreteMed

【设计模式】 模式PK:门面模式VS中介者模式

1.概述 门面模式为复杂的子系统提供一个统一的访问界面,它定义的是一个高层接口,该接口使得子系统更加容易使用,避免外部模块深入到子系统内部而产生与子系统内部细节耦合的问题.中介者模式使用一个中介对象来封装一系列同事对象的交互行为,它使各对象之间不再显式地引用,从而使其耦合松散,建立一个可扩展的应用架构. 2.中介者模式实现工资计算 2.1 类图 大家工作会得到工资,那么工资与哪些因素有关呢?这里假设工资与职位.税收有关,职位提升工资就会增加,同时税收也增加,职位下降了工资也同步降低,当然税收也降

行为型模式之中介者模式

概述 如果在一个系统中对象之间存在多对多的相互关系,可以将对象之间的一些交互行为从各个对象中分离出来,并集中封装在一个中介者对象中,并由该中介者进行统一协调,这样对象之间多对多的复杂关系就转化为相对简单的一对多关系.通过引入中介者来简化对象之间的复杂交互,中介者模式是“迪米特法则”的一个典型应用. 定义 中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互.中介者模式

Java设计模式菜鸟系列(二十二)中介者模式建模与实现

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40027109 中介者模式(Mediator):主要用来降低类与类之间的耦合的,因为如果类与类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改. 一.uml建模: 二.代码实现 /** * 中介者模式(Mediator):主要用来降低类与类之间的耦合的,因为如果类与类之间有依赖关系的话, * * 不利于功能的拓展和维护,因为只要修改一个对象,其它

9 行为型模式之 - 中介者模式

中介者模式的介绍:中介者模式是行为型模式这一,在日常生活中,比如两口子吵架,孩子和双方的父母会劝架,孩子和双方的父母就称有中介者的意思,就是"和事佬",也就是说调解两个起争端的人.而中介绍者模式比这个例子要复杂的多,上面的例子只是涉及到2个人的,中介者模式要涉及的对象是多个.多个对象之间的交互关系,是很复杂的,是网状的关系,中介者就是要把这种多对多的关系转化为一对多的关系,就是转化为星状结构,如下图 网状关系 星状关系 中介模式的定义:中介者模式包装了一系列对象的相互交互作用的方式,使

设计模式——行为型模式之中介者模式(七)

中介者模式 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护.中介者模式属于行为型模式. 介绍 意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应

行为型设计模式之中介者模式

结构 意图 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 适用性 一组对象以定义良好但是复杂的方式进行通信.产生的相互依赖关系结构混乱且难以理解. 一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象. 想定制一个分布在多个类中的行为,而又不想生成太多的子类. 1 using System; 2 3 class Mediator 4 { 5 private DataProviderColleague

模式二之框架模式

摘要: 在讲完javascript设计模式之后,本文主要再讲前端开发框架的模式,再讲模式之前,首先介绍下库和框架的区别,两者都是产品开发时的产物,因此很多人并没有很细的区分开来. 库是将代码封装在文件中.允许继承和修改这些文件.面向对象的代码组织形式而成的库也叫类库.面向过程的代码组织形式而成的库也叫函数库.在函数库中的可直接使用的函数叫库函数.开发者在使用库的时候,只需要使用库的一部分类或函数,然后继续实现自己的功能.比如造汽车,轮子.发动机都是一个库,我们需要继承它来组装汽车. 框架则是为解