Python——創建更加牛逼的對象
阿新 • • 發佈:2018-01-24
可讀性 一起 如果 false 例子 () pytho 補丁 bar 什麽叫更加牛逼的對象?其實是一種更高級別的對象——管理對象
什麽是管理對象:
一種用來管理其他對象的對象,這種對象可以將一切都綁在一起
管理對象的作用:
將工作委托給其他方法,只需按照規定好的順序委托其他方法工作
好吧!有點暈乎乎的感覺!我想了個例子,比如系統打補丁。
操作系統打補丁一般需要經歷三個步驟:
1、下載補丁
2、安裝補丁
3、重啟系統
那麽,管理對象只需確保這3個步驟按順序發生即可!!
下面的代碼只是對事件的模擬,看下面的代碼:
什麽是管理對象:
一種用來管理其他對象的對象,這種對象可以將一切都綁在一起
管理對象的作用:
將工作委托給其他方法,只需按照規定好的順序委托其他方法工作
好吧!有點暈乎乎的感覺!我想了個例子,比如系統打補丁。
操作系統打補丁一般需要經歷三個步驟:
1、下載補丁
2、安裝補丁
3、重啟系統
那麽,管理對象只需確保這3個步驟按順序發生即可!!
下面的代碼只是對事件的模擬,看下面的代碼:
class Host: def __init__(self, hostname, ip): self.hostname = hostname self.ip = ip def patch_repair(self): #管理者方法(補丁修復順序) self.download_patch() #下載 self.install_patch() #安裝 self.reboot_system() #重啟 def download_patch(self): #補丁下載 print("{} Start downloading the patch".format(self.hostname)) def install_patch(self): #補丁安裝 print("{} Start install patch".format(self.hostname)) def reboot_system(self): #重啟系統 print("{} Start reboot system".format(self.hostname)) if __name__ == '__main__': h = Host("pc001", "192.168.89.67") h.patch_repair()
似乎沒毛病!那麽這樣做的好處是啥?
1、增強可讀性,每一個步驟的代碼都是獨立的,
2、增強可擴展性,如果子類只需下載補丁的方法,那麽就可以直接繼承並覆蓋它,重寫它
3、增強隔離性,一個外部類可以創建這個類的實例,可以直接使用其中的一個方法,而不是 patch_repair
Python——創建更加牛逼的對象