關於pytho面向過程開發人員三步轉oo的補充,再加一步,四步走戰略
1、之前寫的這個很久了
裏面提到的是三步走:
模塊和類的轉換規則是:
1、模塊級降為類
2、全局變量改成實例屬性,全局的不會被改變的變量類似於那種const的,可以寫成類屬性(減少點內存存儲可以)。
3、然後把函數改成方法。方法是類裏面的,函數是模塊裏面的。
因為裏面舉得一個例子是一個人,但人的屬性寫的是模塊級全局變量,如果是這種寫法,三步走就可以oo了。
2、但現在的情況是很多人不喜歡寫全局變量(不寫全局是為了盡可能模擬多實例,不可能用全局變量,因為全局變量只有一份;而且運行結果是從入口函數傳參得到結果,不希望修改頂層代碼,所以才會出現盡量少寫全局變量這種現象了
如果是這種思維來寫的面向過程,那麽三步走還不行,需要重新構思整個流程,即在代碼裏面少return少傳參,多用全局變量,按照這個思路在腦袋裏面過一遍,這一步是發生在腦袋裏面的,不是讓你真在代碼寫全局變量,是為了先構思出來有哪些全局變量,然後再接著上面的三步走戰略降級命名空間,就是oo了。
所以這個前置的發生在腦袋裏面的過程是不能少的,這一步是整個精神支柱 ,後面三步是修改代碼面貌。
那麽總結一下就是四步走了:
0、腦瓜裏面構思,你的面向過程的return 傳參,有哪些盡可能多的是可以弄成全局變量的,這時候不用考慮全局變量是不是需要多份的,因為後面在三步走降級的時候,這個玩意自動變成了實例屬性,而每個類的實例的的屬性都是互不幹擾的,除非了你刻意寫了單例模式。
1、模塊級降為類
2、全局變量改成實例屬性,全局的不會被改變的變量類似於那種const的,可以寫成類屬性(減少點內存存儲可以)。
3、然後把函數改成方法。方法是類裏面的,函數是模塊裏面的。
第0步發生在腦袋裏面,後面三步發生在代碼編輯器裏面。
面向對象本質是方法和屬性的封裝,如果把屬性綁定全部改為外界傳參給方法,那寫這樣的類,基本上是沒個鳥用廢了類的80%功能,只不過是加個class外殼罷了,。
關於pytho面向過程開發人員三步轉oo的補充,再加一步,四步走戰略