【風(fēng)趣的解釋】
Facade Mode
美眉們越來越聰明了,知道男人寧愿花點(diǎn)錢也不愿意陪她們逛街痛单。是男人菱皆,你懂得须误!美眉們都學(xué)會網(wǎng)購了,沒事閑著就在淘寶上逛 仇轻,免去了整天拖著男人在商場里溜達(dá),付個款簡單的跟“1”一樣奶甘。在支付寶輸個密碼篷店、點(diǎn)個確定就OK。這個支付界面就是一個外觀模式很好的例子臭家,只需用戶執(zhí)行簡單的操作疲陕,就能自動完成很復(fù)雜的功能(處理買家、賣家钉赁、快遞蹄殃、銀行之間的業(yè)務(wù))。
【正式的解釋】
外觀模式
外觀模式為子系統(tǒng)中的一組接口提供一個統(tǒng)一的高層接口你踩,使得子系統(tǒng)更易于使用诅岩。
【Python版】
#-*- coding:utf-8 -*-
#支付系統(tǒng)
class PaySystm(object):
def pay(self):
print "Payments completed."
#賣家系統(tǒng)
class SellerSystem(object):
def sendOut(self):
print "Seller sended out."
#快遞系統(tǒng)
class ExpressSystem(object):
def express(self):
print "Expressors delivered."
#高層接口讳苦,簡單易用,只能支付一次哦
class Facade(object):
__instance = None
def __new__(cls, *args, **kwargs):
if not cls.__instance:
paySys = PaySystm()
paySys.pay()
sellerSys = SellerSystem()
sellerSys.sendOut()
expSys = ExpressSystem()
expSys.express()
cls.__instance = super(cls.__class__, cls).__new__(
cls, *args, **kwargs)
return cls.__instance
if __name__ == "__main__":
facade = Facade()
"""
Payments completed.
Seller sended out.
Expressors delivered.
"""
【JS版】
//支付系統(tǒng)
function PaySystem(){
}
PaySystem.prototype.pay = function(){
console.log('Payments completed.');
};
//賣家系統(tǒng)
function SellerSystem(){
}
SellerSystem.prototype.sendOut = function(){
console.log('Seller sended out.');
};
//快遞系統(tǒng)
function ExpressSystem(){
}
ExpressSystem.prototype.express = function(){
console.log('Expressors delivered.');
}
//高層接口吩谦,簡單易用鸳谜,只能支付一次哦
function Facade(){
if(typeof Facade.instance == 'object'){
return Facade.instance;
}
var paySys,
sellerSys,
expSys;
paySys = new PaySystem();
paySys.pay();
sellerSys = new SellerSystem();
sellerSys.sendOut();
expSys = new ExpressSystem();
expSys.express();
Facade.instance = this;
}
var facade = new Facade();
/*console out
Payments completed.
Seller sended out.
Expressors delivered.
*/