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

1、中介者模式

            用来降低类类之间的耦合,因为如果类类之间有依赖关系的话,不利于功能的扩展和维护,因为只要修改一个对象,其他的关联的对象都得进行修改。

             如果使用中介者模式,只需要关心和Medialtor类的关系,具体的类类之间的关系及调度交给Mediator就行。

 

      如图:User类统一接口,User1和User2分别是不同的对象,(假设两者之间存在联系),如果不采用中介者模式,则需要两者持有相互的引用,这样两者

       耦合度很高,为了解耦,引入统一接口Mediator,MyMediator为其实现类,里面持有User1和User2的实例,用来实现对User1和User2的控制。

       这样User1和User2两个对象相互独立,他们只需要保持好和Mediator之间的关系就行,剩下的全由MyMediator类来维护!

 

    实例一:

     

public interface User {

	public void work();

}

public class User1 implements User {

	@Override
	public void work() {
		System.out.println(" ~~~ user1 worked ~~~");
	}

}

public class User2 implements User {

	@Override
	public void work() {
		System.out.println("~~~~~ user2 worked ~~~");
	}

}

// 中介者
public interface Mediator {

	public void addUser(User user);

	public void workAll();

}

public class MyMediator implements Mediator {

	private List<User> list = new ArrayList<User>();

	@Override
	public void addUser(final User user) {
		this.list.add(user);
	}

	@Override
	public void workAll() {
		for (int i = 0; i < this.list.size(); i++) {
			this.list.get(i).work();
		}
	}

}


 

    模拟调用:

     

	public static void main(final String[] args) {
		final Mediator me = new MyMediator();
		me.addUser(new User1());
		me.addUser(new User2());
		me.workAll();
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值