在多物件互動業務中,引入統一業務處理的第三方,實現物件間的解耦。
類圖中包含者未引入中介者模式的方法,詳情請看**
///房子管理者
3///
4public
abstract
class
housemanger58
public housemanger(string name, int
moneycount)913
public
abstract
void deal(int money, bool
flag);14}
15///
16///
a類管理者
17///
18public
class
housemanagera : housemanger
1925
public
override
void deal(int money, bool
flag)
2629
#region 不走中介的模式,增加了對housemanagerb的強引用
30///
31///
賣房子32
///33
///34
///35
public
void sell(int
money, housemanagerb buyer)
36名下
", buyer.name);
39 buyer.buy(money, this
);4041}
42///
43///
買房子44
///45
///46
///47
public
void buy(int
money, housemanagerb seller)
48的房子了
", seller.name);51}
52#endregion53}
54///
55///
b類管理者
56///
57public
class
housemanagerb : housemanger
5864
public
override
void deal(int money, bool
flag)
6568
#region 不走中介的模式,增加了對housemanagera的強引用,走中介則不會
69///
70///
買房子71
///72
///73
///74
public
void buy(int
money, housemanagera seller)
75的房子了
", seller.name);78}
79///
80///
賣房子81
///82
///83
///84
public
void sell(int
money, housemanagera buyer)
85名下
", buyer.name);
88 buyer.buy(money, this
);8990}
91#endregion
9293}94
public
abstract
class
housemediator
95103
///104
///a賣與b
105///
106public
abstract
void atobdeal(int
money);
107///
108///
b賣與a
109///
110public
abstract
void btoadeal(int
money);
111}
112///
113///
免費的中介者(房產中介是收錢的,相當於引入新業務,此處只是說明中介者模式)
114///
115public
class
freehousemediator : housemediator
116將房子賣與了
", a.name, b.name);
123}
124125
public
override
void btoadeal(int
money)
126將房子賣與了
", b.name, a.name);
130}
131 }
中介者模式
1.中間 類 namespace intermediarypattern 成員物件需要知道是哪個中介者在通知它事情 public abstract class member 各成員間要傳送訊息 public abstract void send string msg 這個方法其實是具體實施發訊息的 ...
中介者模式
中介者模式就是在物件之間的關係很複雜時用,名如其人,就像租房的黑中介一樣,如果每個房東都拿著很多租房者的資訊很麻煩,每個租房者都要拿著很多房東的資訊也麻煩,所以需要乙個中介來拿著這些資訊,租房者只需要發出租房的請求,中介會給你介紹合適的房東,房東只需要提交房屋資料就等著中介的人帶著訪客看房拿錢就行了...
中介者模式
中介者模式 mediator pattern 1 抽象中介者 mediator 角色 抽象中介者角色定義統一的介面用於各同事角色之間的通訊。具體中介者 concrete mediator 角色 具體中介者角色通過協調各同事角色實現協作行為,因此它必須依賴於各個同事角色。同事 colleague 角色...