通俗 Python 設計模式——外觀模式
外觀模式是一種在日常開發中經常用到的設計模式,它與之前提到過的介面卡模式有一定的相似之處,但理念是不一樣的。
外觀模式的核心在於將複雜的內部實現包裝起來,只向外界提供簡單的呼叫介面。類似現實世界中的電腦,開機按鈕可以說就是一個簡單的呼叫介面,幫使用者遮蔽了複雜的內部電路。
在程式開發中,外觀模式通常在層次結構之間提供清晰簡單的互相呼叫。書上的例子引入了一些不必要的東西,這裡我用計算機的例子來說明:
假設我們需要將計算機抽象,並且這個計算機啟動僅需兩步:呼叫BIOS和核心,關閉同樣只是順序相反。那麼首先我們宣告一個 Computer
類,它只提供 start
和 stop
方法供外部呼叫。
class Computer(object):
def __init__(self):
self.bios = Bios()
self.kernal = Kernal()
def start(self):
for i in (self.bios, self.kernal):
i.start()
def stop(self):
for i in (self.kernal, self.bios):
i.stop()
然後我們需要將 Bios
和 Kernal
類宣告出來。
class Bios(object):
def __init__(self):
pass
def start(self):
print('bios start ok')
def stop(self):
print('bios stop ok')
class Kernal(object):
def __init__(self):
pass
def start(self):
print('kernal start ok')
def stop(self):
print('kernal stop ok')
然後對於使用者來講,當他例項化了一個 computer
物件後,如果需要執行啟動操作,只需要呼叫 computer.start()
即可完成所有啟動過程,無需自己逐步的呼叫 bios
和 kernal
進行啟動。如此一來就實現了將複雜邏輯進行封裝的目的。
這個模式因為十分常用,所以開發者應該都相對比較熟悉,而且其本身的實現也比較簡單,所以就以這個簡單的例子作為說明即可。
相關文章
- Python設計模式-外觀模式Python設計模式
- 設計模式-外觀模式設計模式
- 設計模式---外觀設計模式設計模式
- 設計模式(十)外觀模式設計模式
- java設計模式-外觀模式Java設計模式
- 設計模式系列-外觀模式設計模式
- 設計模式(十):外觀模式設計模式
- 通俗 Python 設計模式——原型設計模式Python設計模式原型
- 通俗 Python 設計模式——代理模式Python設計模式
- 【設計模式】外觀設計模式
- 極簡設計模式-外觀模式設計模式
- JS 設計模式 十一(外觀模式)JS設計模式
- Java設計模式11:外觀模式Java設計模式
- 軟體設計模式————(外觀模式)設計模式
- 通俗 Python 設計模式——工廠模式Python設計模式
- 通俗 Python 設計模式——建造者模式Python設計模式
- 通俗 Python 設計模式——享元模式Python設計模式
- 設計模式之【門面模式(外觀模式)】設計模式
- Python設計模式之"外觀模式"例項講解Python設計模式
- 《Head First 設計模式》:外觀模式設計模式
- 設計模式第六講-外觀模式設計模式
- 【23種設計模式】外觀模式(十)設計模式
- 23種設計模式(8)-外觀模式設計模式
- 通俗 Python 設計模式——介面卡模式Python設計模式
- 設計模式 | 外觀模式及典型應用設計模式
- 設計模式——9外觀模式(Facade)設計模式
- java23種設計模式-門面模式(外觀模式)Java設計模式
- Go 實現常用設計模式(八)外觀模式Go設計模式
- JS設計模式之Facade(外觀)模式JS設計模式
- 軟體設計模式系列之十二——外觀模式設計模式
- 《設計模式》 - 8. 外觀模式( Facade )設計模式
- python-外觀模式Python模式
- iOS設計模式之二:外觀模式和裝飾器模式iOS設計模式
- 設計模式【9】-- 外觀模式?沒那麼高大上設計模式
- C#設計模式-外觀模式(Facade Pattern)C#設計模式
- 設計模式學習-使用go實現外觀模式設計模式Go
- 設計模式--外觀模式Facade(結構型)設計模式
- C#設計模式系列:外觀模式(Facade)C#設計模式