Python設(shè)計模式 - 外觀模式

"""

外觀(Facade)模式:為子系統(tǒng)中的一組接口提供一個一致的界面。

——此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。

與其它模式的區(qū)別:與?“簡單工廠模式+策略模式”的組合版?很類似,不過外觀類的接口不是簡單的調(diào)用功能類的相應(yīng)接口,

而是封裝成了新的接口。

使用場景:維護一個遺留的大型系統(tǒng)是,可能這個系統(tǒng)已經(jīng)非常難以維護和擴展,但是它包含很重要的功能,新的開發(fā)必須依賴于它,

這樣增加外觀Facade類,為系統(tǒng)封裝一個比較清晰簡單的接口,讓新系統(tǒng)與Facade對象交互,F(xiàn)acade與遺留代碼交互所有復雜的工作

"""

import?time

SLEEP?=?0.5

#?復雜部分

class?TC1:

????def?run(self):

????????print("######?測試1?######")

????????time.sleep(SLEEP)

????????print("?設(shè)置...")

????????time.sleep(SLEEP)

????????print("運行測試...")

????????time.sleep(SLEEP)

????????print("拆除...")

????????time.sleep(SLEEP)

????????print("測試結(jié)束了\n")

class?TC2:

????def?run(self):

????????print("######?測試2?######")

????????time.sleep(SLEEP)

????????print("設(shè)置...")

????????time.sleep(SLEEP)

????????print("運行測試...")

????????time.sleep(SLEEP)

????????print("拆除...")

????????time.sleep(SLEEP)

????????print("測試結(jié)束了\n")

class?TC3:

????def?run(self):

????????print("######?測試3?######")

????????time.sleep(SLEEP)

????????print("?設(shè)置...")

????????time.sleep(SLEEP)

????????print("運行測試...")

????????time.sleep(SLEEP)

????????print("拆除...")

????????time.sleep(SLEEP)

????????print("測試結(jié)束了\n")

#?外觀模式

class?ExecuteRunner:

????def?__init__(self):

????????self.tc1?=?TC1()

????????self.tc2?=?TC2()

????????self.tc3?=?TC3()

????????"""列表解析

??????????在一個序列的值上應(yīng)用一個任意表達式,將其結(jié)果收集到一個新的列表中并返回。

??????????它的基本形式是一個方括號里面包含一個for語句對一個iterable對象迭代"""

????????self.tests?=?[i?for?i?in?(self.tc1,?self.tc2,?self.tc3)]

????def?runAll(self):

????????[i.run()?for?i?in?self.tests]

#主程序

if?__name__?==?'__main__':

????testrunner?=?ExecuteRunner()

????testrunner.runAll()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容