前言:【模式總覽】——————————by xingoo
使用乙個中介的物件,封裝一組物件之間的互動,這樣這些物件就可以不用彼此耦合。
這個中介者常常起著中間橋梁的作用,使其他的物件可以利用中介者完成某些行為活動,因此它必須對所有的參與活動的物件瞭如指掌!
1 當一組物件要進行溝通或者業務上的互動,但是其關係卻又很複雜混亂時,可以採用此模式。
2 當乙個物件與其他的物件要進行緊密的互動,但又想服用該物件而不依賴其他的物件時。
3 想創造乙個執行於多個類之間的物件,又不想生成新的子類時。
mediator抽象的中介者,定義中介的規範
inte***ceconcretemediator具體的中介者,通常內部依賴於多個業務物件mediator
classcolleague抽象的業務角色concretemediator implements mediator
public
void
createconcretemediator()
private
colleague1 getcol1()
public
colleague2 getcol2()
}
abstractcolleague1 colleague2具體的業務角色class
colleague
public
mediator getmediator()
public
abstract
void
action();
public
void
change()
}
class全部**colleague1 extends colleague
public
void
action()
}class
colleague2 extends colleague
public
void
action()
}
1view codepackage com.xingoo.test.design.mediator;
2abstract
class
colleague89
public
mediator getmediator()
1213
public
abstract
void
action();
1415
public
void
change()18}
19class
colleague1 extends colleague
23public
void
action()26}
27class
colleague2 extends colleague
31public
void
action()34}
35inte***ce
mediator
38class
concretemediator implements mediator
4647
public
void
createconcretemediator()
5152
private
colleague1 getcol1()
5556
public
colleague2 getcol2()
5960}61
62public
class
client
70 }
執行結果
畢業的同學們,第乙個要解決的問題就是租房子,當白富美高富帥出沒社會後,窮屌絲沒了生存之地。但是只要勤勞,一樣有飯吃有房住!
這裡房屋中介好比是乙個中介者,它知道每個租客的身份資訊,當有房屋出租後,它會傳送給每乙個租客訊息。
這樣,租客們中有乙個變化活動時,都會利用房屋中介,傳送訊息到其他的租客。下面就是模仿的乙個過程。
房屋中介**如下:
1租客的**如下:inte***ce
statemediator
4class
realestateagents implements statemediatorelse
if(tenant instanceof tenantb)else
if(tenant instanceof tenantc)21}
2223
public
void
createagents()
28 }
1產生的業務活動如下:abstract
class
tenant
6public
abstract
void
crying();
7public
void
renting()10}
11class
tenanta extends tenant
15public
void
crying() 18}
19class
tenantb extends tenant
23public
void
crying() 26}
27class
tenantc extends tenant
31public
void
crying()
34 }
1執行結果public
class
clienttest
12 }
tea 搶到了房子了!posted @海景洋房 已經租出去了!
我是白富美 tenantb!哎呀我想要!
我是窮屌絲 tenantc!哎呀我想要!
過了兩個月 teb 搶到了房子了!
海景洋房 已經租出去了!
我是高富帥 tenanta!哎呀我想要!
我是窮屌絲 tenantc!哎呀我想要!
2014-11-07 22:09
xingoo 閱讀(
...)
編輯收藏
設計模式 中介者模式
假如沒有總經理,下面三個部門 財務部,市場部,研發部。財務部要發工資,讓大家核對公司需要跟市場部和研發部都通氣 市場部要接新專案,需要研發部處理技術 需要財務部出資金。市場部跟各個部門打交道。雖然只有三個部門,但是關係非常亂。實際上,公司都有總經理。各個部門有什麼事情都通報到總經理這裡,總經理再通知...
設計模式 中介者模式
在我們的日常生活中經常需要購買各種各樣的東西,房子 車子 生活用品等等。那麼我們並不會對各個產品都了解,所以銷售人員應運而生,他們了解產品,然後他們根據你的需求在向你們推薦符合你們要求的產品。這些銷售人員就相當於中介,處於客戶和產品之間,為你們搭橋牽線。這就是這篇需要講述的乙個設計模式 中介者模式。...
設計模式 中介者模式
在學習這個模式之前,我們先來回顧一下乙個物件導向的設計原則 迪公尺特原則,這個原則告訴我們 乙個物件盡可能少跟其他物件進行關聯,就像乙個人要少跟陌生人說話一樣。而中介者模式,也正是為了協調多個物件之間複雜的引用關係。我們來看乙個例子,雖然這個例子不太好,後期想個好一點的例子再改。在中介者模式中,主要...