中介者模式
1 目的是把对象之间网状的关系,转化为星状的关系。嗯,我还是觉得奇怪,这种提出来的意义是什么,一般好像就是这么处理。网上的聊天室例子并不合适,因为它是直接A发消息给大厅,而不是A发消息给B,本来就跟对象之间没有关系,所以本质就是星状的关系,没有任何变化。
2 我觉得这个模式的使用条件是,对象之间可以不是直接联系。比如A1要租房,B1,B2,B3是房东,有一个中介C,A1请求租房,C进行处理,C从房东列表里面找出最合适的房东B2给他房间钥匙。所以你看,重点来了,A1他并不是一定就要跟B2租房的,他也可以跟B1租,他们之间可以没有必然直接联系。
public class User
{
public string name;
public int money;
public User(string _name)
{
name = _name;
}
public void GetMoney(int count)
{
money += count;
}
}
public class AliPay
{
public static void TransferTo(User user1, User user2 , int count)
{
user1.GetMoney(-count);
user2.GetMoney(count);
}
}
public class Midiator
{
public void Demo()
{
User xiaoMing = new User("xiaoMing");
User xiaoHong = new User("xiaoHong");
//通过支付宝这个中介来转账
AliPay.TransferTo(xiaoMing, xiaoHong, 100);
}
}