星期五, 9月 16, 2005

生理上課心得

物件導向最重要的三大原則:封裝、繼承、多型。封裝保證某一子系統或元件只能經由既定介面存取、繼承的設計可以由簡而繁逐漸擴充應用的功能同時不會把程式弄爛,多型的設計可以大幅簡化許多同樣機制的瑣碎化。物件導向基本原理實作成功與否,會大大影響程式未來的擴充性和維護性。物件導向不止用於程式設計,也用於作業系統的產品,如Windows XP就把作業系統分成許多獨立物件。

上帝給人類許多系統,諸如循環系統、消化系統、內分泌系統等等以維持人類的功能。繼承的部份上帝做的很好,同樣一份DNA sequence,可以產生幹細胞,然後在不同器官發展成不同的細胞,而這些逐漸分化的細胞都遵守了繼承,從虛擬類別的幹細胞一路分化,最後完成了人體龐大的物件樹。上帝對於多型也很拿手,身體的腺體使用同樣蛋白質對各大不同器官進行同樣參數的呼叫,可以產生截然不同的效果。

但是上帝對於封裝可就不行了,系統與系統之間缺乏明顯的界線。理想的物件導向下,類別應該只提供少數幾個既定介面進行資料操作,物件之間不應該可以互相存取各自的內部屬性。以作業系統來說,各大物件記憶體等資源應該互相獨立以保持運作的正確性。但是上帝創造的人體幾乎把所有可以用的函式和變數全部宣告成public,導致物件間的互動極度複雜化。沒有使用記憶體轉址,所有物件都可kernel mode存取系統底層,完全沒有權限的概念。結果就是一個系統的「東西」隨時可以攻打其他系統的內部,孕婦羊水栓塞可以影響肺部功能,癌症可以利用蛋白質呼叫其他系統的內部函式進行轉移。染髮劑可以從頭頂到達膀胱。混亂設計也導致元件間糾纏不清,維護不易,除錯困難,才讓人類到現在還沒辦法解開老化之謎....

結論是什麼?物件導向要做好,不然程式會很慘XD(謎之聲:文章標題不是生理課上課心得嗎=.=) 全文連結

0 意見: