1. 程式人生 > >Python——創建更加牛逼的對象

Python——創建更加牛逼的對象

可讀性 一起 如果 false 例子 () pytho 補丁 bar

什麽叫更加牛逼的對象?其實是一種更高級別的對象——管理對象

什麽是管理對象:
一種用來管理其他對象的對象,這種對象可以將一切都綁在一起

管理對象的作用:
將工作委托給其他方法,只需按照規定好的順序委托其他方法工作

好吧!有點暈乎乎的感覺!我想了個例子,比如系統打補丁。

操作系統打補丁一般需要經歷三個步驟:
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——創建更加牛逼的對象