java——封裝的理解

封裝


封裝其實就是對複雜事物的一種簡化。任何事物隨着不斷地發展,總是會越來越複雜,體量越來越大,效率越來越低,管理起來越來越困難。這時候就需要進行分類升級,也就是我們所說的抽象,將相同特徵的一類事物進行抽象封裝。抽象程度越高,封裝就越徹底。

在計算機領域中,最開始是使用二進制的機器語言進行電腦的控制管理,一串010101的二進制碼錶示了對計算機的操作指令。十分的複雜且不方便記憶。俗話說,窮則思變,變則通。複雜就需要改變,然後出項了彙編語言,使用人類可以理解的指令來代替機器語言,一條彙編指定可能就表示好多條機器指令,所以這也是一種封裝。這種改變可能在當時是一種偉大的改進,但是技術的發展是迅速的,隨着操作系統功能的增強,那彙編指令也會越來越多。同樣需要改變升級,然後高級編程語言出現了。以人類可以識別,可以理解的方式進行代碼編寫,指令下達,無疑這樣是十分高效且方便的。

面向過程的編程語言,已經可以滿足我們的開發需要,可以以人類可以理解的方式完成我們需要的任何功能。面向過程通常以功能來進行函數封裝,完成一個功能需要分爲幾個步驟,然後我們的程序就是按照步驟一步一步地寫。如果完成另外一個功能,兩個功能的步驟一般是不一樣的。即使我們對所有的步驟都進行了函數抽離,通常也不能很好的複用。如果項目較大的,那抽離的函數也遍佈在各個文件中。

而面向對象的編程方式,將程序與現實生活相對應,一個類就對應了一類具有相同特點的事物,這種事物有着自己獨有的數據存儲和功能特徵。比如用戶購物,可以抽象封裝爲user類、goods類。user類包含了用戶的基本信息:姓名、餘額。然後用戶具有購買商品的行爲。商品也有基本信息:名稱、價格。然後用戶購物的這個過程可以轉變爲:聲明一個用戶類和商品類,然後觸發用戶的購買行爲。將編程轉變成了一種對象資源的調度。如果用戶現在想退貨,用戶類和商品類可以繼續複用,只需要增加一個退貨行爲即可。

與面向過程的步驟化編程相比,面向對象就像從一個樂隊的演奏者變成了指揮者。演奏者需要關心每一個音符,而指揮者只需要知道你是鋼琴手還是小提琴手。在項目設計的時候,就已經進行類設計,將整個項目涉及到的對象都抽象了出來。然後實施的過程中,只需要將對象實例化,並完成對象之間的調用關係即可。

封裝的腳步並沒有由此結束,我們對代碼的封裝形成了類,對成百上千的類的封裝形成了框架或者中間件,對項目進行封裝我們形成了分佈式集羣,將項目和所在環境結合起來形成了docker,如果考慮到對部署服務器的管理,然後形成了K8S……

封裝並不是計算機領域特有的,而是整個社會都存在的一種思想。比如從社會發展方面,隨着人數的增多,形成了村落。隨着村落增加,劃分了鄉鎮。然後到區縣、省市、國家、星系等等。

封裝並不是一種技術,而是一種思想。當一件事變得複雜,就需要從一個更高的層次來進行管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章