設計模式**於建築行業,中西方建築各有自己的風格;每種風格都有自己的建築方法(套 路); 只要按照不同風格的建築方法(套路)就能建成不同風格的建築;簡單的說設計模式就是一 種(方法)套路;再比如肯德基麥當勞快餐店為什麼全球的口味都一樣呢?就是做食品的套路相 同(炸雞塊多長時間都是固定的)。 程式中設計模式是軟體開發人員在軟體開發過程中面臨的一般問題的解決方案。這些解決方
案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。使用設計模式是為
了重用**、讓**更容易被他人理解、保證**可靠性。
1. 單例模式
單例模式(singleton pattern)是一種常用的軟體設計模式,該模式的主要目的是確保某 乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件
就能派上用場。
class
sun(
object):
#定義類屬性
__instance=
none
def__new__
(cls,
*args,
**kwargs)
:#如果__instance還沒有值,就給__insstance變數賦值
ifnot cls.__instance:
cls.__instance=
object
.__new__(cls)
return cls.__instance
else
:return cls.__instance
sun=sun(
)print(id
(sun)
)sun1=sun(
)print(id
(sun1)
)
結果:
1764653179736
1764653179736
2. 工廠模式
工廠模式是乙個在軟體開發中用來建立物件的設計模式。
當程式執行輸入乙個「型別」的時候,需要建立於此相應的物件。這就用到了工廠模式。在
如此情形中,實現**基於工廠模式,可以達到可擴充套件,可維護的**。當增加乙個新的類
型,不在需要修改已存在的類,只增加能夠產生新型別的子類。
class
car:
defrun
(self)
:print
("跨吃垮吃跑"
)def
stop
(self)
:print
("巴拉巴拉的停"
)class
bmw(car)
:def
run(self)
:print
("寶馬----->>駕駕駕~~~"
)def
stop
(self)
:print
("寶馬------>>吁吁籲~~~"
)class
fute
(car)
:def
run(self)
:print
("福特------>>輪胎跑"
)def
stop
(self)
:print
("福特停"
)class
phoenix
(car)
:def
run(self)
:print
("鳳凰------>>用腳蹬"
)def
stop
(self)
:print
("鳳凰----->>手剎"
)class
ca***ctory
:def
new_car
(self,name)
:if name==
"bmw"
: bmw=bmw(
)return bmw
if name==
"phoenix"
: phoenix=phoenix(
)return phoenix
if name==
"fute"
: fute=fute(
)return fute
class
carstore
:def
__init__
(self,factory)
: self.factory=factory
deforder
(self,name)
: new_car=self.factory.new_car(name)
return new_car
factory=ca***ctory(
)car_store=carstore(factory)
fh=car_store.order(
"phoenix"
)fh.run(
)fh.stop(
)
結果:
鳳凰---
--->>用腳蹬
鳳凰----
->>手剎
未完待續········· Python常用設計模式 工廠模式
工廠模式是乙個在軟體開發中用來建立物件的設計模式。當程式執行輸入乙個 型別 的時候,需要建立於此相應的物件。這就用到了工廠模式。在如此情形中,實現 基於工廠模式,可以達到可擴充套件,可維護的 當增加乙個新的型別,不在需要修改已存在的類,只增加能夠產生新型別的子類。設計模式的 工廠 這個概念就是 於我...
Python常用設計模式 單例模式
單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用場。注意 在python中匯入模組就是一種單例模式。class sun 定義類屬性 instance none d...
Python設計模式(1) 設計模式的定義和分類
設計模式是經過總結 優化的,對我們經常會碰到的一些程式設計問題的可重用解決方案。乙個設計模式並不像乙個類或乙個庫那樣能夠直接作用於我們的 反之,設計模式更為高階,它是一種必須在特定情形下實現的一種方法模板。設計模式不會繫結具體的程式語言,乙個好的設計模式應該能夠用大部分程式語言實現 如果做不到全部的...