2012-03-23 71 views
2

Python中的裝飾圖案允許用其他能夠改變其行爲的對象包裝核心對象。還有人建議猴子補丁可以用來達到類似的效果嗎?兩者如何比較?何時裝飾圖案比用於相同任務的猴子修補更有用?裝飾圖案與Python中的猴子修補

回答

1

使用裝飾圖案和猴子修補之間的主要區別是猴子修補會導致難以調試的代碼。問題是,猴子修補並沒有明確顯示你修改了這個類的事實:用戶/讀者/維護者可能會被補丁類的行爲與他們期望的不同(即從原始類)的行爲混淆。我會建議堅持裝飾模式,代碼可維護性。