有一天,我正在編碼,突然間我發現自己正在努力解決一個簡單的問題,但混淆解決方案(至少在pythonic的方式去)。在Python中使用空模式的推薦方式是?
的代碼應該只下載一些文件,對於這一點,它會調用一些DownloadController
傳遞一個callback
所以接收到的事件,如init
,progress
,error
和success
。
但是,我的代碼並不需要所有這些事件。有了這個,我便想起了一些解決方案
- 變化
DownloadController
有一個默認callback=None
並檢查它,忽略在這種情況下 - 有
NullCallbackImpl
粘附回調接口發送事件,但什麼都不做(只是pass
上每個事件)
第一種方法不喜歡它,因爲代碼會有點混亂,而不是很好的設計。
所以,我堅持使用第二種方法......問題:
- 有多好(也許「有多壞」)會是有一個
null_callback = mock.Mock()
? (使用Michael Foord的python模擬庫)- 是否有任何庫可以做到這一點?
- 或者我應該堅持創建一個
NullCallbackImpl
實施每種方法與一個簡單的pass
?
嘲笑記錄每個電話。你不希望每個事件都產生一堆垃圾日誌。 – user2357112
這是一個很好的觀點。事實上,我需要避免這樣做的唯一理由。謝謝! –