Mediator 用一个中介者对象来封装一系列的对象交互。中介者使各个对象不需要显式的相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
2007-01-05 17:21
507 查看
using System;
2
3namespace Gof.Test.Mediator
4using System;
2
3namespace Gof.Test.Mediator
4using System;
2
3namespace Gof.Test.Mediator
4using System;
2
3namespace Gof.Test.Mediator
4{
5 public class TubMediator
6 {
7 private System.Collections.Hashtable _tubMachine = new System.Collections.Hashtable();
8 private static TubMediator _mediator;
9 private TubMediator()
10 {}
11 public static TubMediator Singleton()
12 {
13 if(_mediator == null)
14 {
15 _mediator = new TubMediator();
16 }
17 return _mediator;
18 }
19 public Machine GetMachine(Tub t)
20 {
21 return (Machine)_tubMachine[t];
22 }
23 public System.Collections.IList GetTubs(Machine m)
24 {
25 System.Collections.ArrayList al = new System.Collections.ArrayList();
26 System.Collections.IDictionaryEnumerator e = _tubMachine.GetEnumerator();
27 while(e.MoveNext())
28 {
29 if(e.Value.Equals(m))
30 {
31 al.Add(e.Key);
32 }
33 }
34 return al;
35 }
36 public void Set(Tub t,Machine m)
37 {
38 _tubMachine[t] = m;
39 }
40 }
41}
2
3namespace Gof.Test.Mediator
4using System;
2
3namespace Gof.Test.Mediator
4using System;
2
3namespace Gof.Test.Mediator
4using System;
2
3namespace Gof.Test.Mediator
4{
5 public class TubMediator
6 {
7 private System.Collections.Hashtable _tubMachine = new System.Collections.Hashtable();
8 private static TubMediator _mediator;
9 private TubMediator()
10 {}
11 public static TubMediator Singleton()
12 {
13 if(_mediator == null)
14 {
15 _mediator = new TubMediator();
16 }
17 return _mediator;
18 }
19 public Machine GetMachine(Tub t)
20 {
21 return (Machine)_tubMachine[t];
22 }
23 public System.Collections.IList GetTubs(Machine m)
24 {
25 System.Collections.ArrayList al = new System.Collections.ArrayList();
26 System.Collections.IDictionaryEnumerator e = _tubMachine.GetEnumerator();
27 while(e.MoveNext())
28 {
29 if(e.Value.Equals(m))
30 {
31 al.Add(e.Key);
32 }
33 }
34 return al;
35 }
36 public void Set(Tub t,Machine m)
37 {
38 _tubMachine[t] = m;
39 }
40 }
41}
相关文章推荐
- 协调多个对象之间的交互——中介者模式(Mediator Pattern)
- Observer 在对象之间定义一个一对多的依赖关系,从而当一个对象状态发生改变时,所有依赖于这个对象的对象都能够得到通知,并对上述改变做出反应.
- 用一个中介对象来封装一系列的对象交互
- 协调多个对象之间的交互——中介者模式(一)
- 协调多个对象之间的交互——中介者模式(五)
- 协调多个对象之间的交互——中介者模式(三)
- 继承与合成基本概念 继承:可以基于已经存在的类构造一个新类。继承已经存在的类就可以复用这些类的方法和域。在此基础上,可以添加新的方法和域,从而扩充了类的功能。 合成:在新类里创建原有的对象称为合成。
- 协调多个对象之间的交互——中介者模式(二)
- 协调多个对象之间的交互——中介者模式(五)
- Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
- 【ThinkingInC++】46、特定的数据成员可以在一个const对象里被改变
- 久违的json使用大法 (通常Ajax希望返回多个键值对,可以用将要返回的数据先封装到一个对象中,再将这个对象转为json格式)
- 协调多个对象之间的交互——中介者模式(四)
- 协调多个对象之间的交互——中介者模式(四)
- 协调多个对象之间的交互——中介者模式(三)
- 协调多个对象之间的交互——中介者模式
- 在Eclipse中测试MySQL-JDBC(5)查询1-4之间的所有员工,并且封装为一个个的employee对象,并且存储到一个集合中
- Bridge 把一个抽象与其抽象操作的实现进行分离,这样,抽象与其抽象操作的实现可以独立进行改变
- 小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和
- 协调多个对象之间的交互——中介者模式(二)