最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

大道至簡的架構(gòu)設(shè)計思想之:封裝(C系架構(gòu)設(shè)計法,sishuok)

2023-03-02 14:30 作者:一個老程序員  | 我要投稿

一起來看看大道至簡的一些基本設(shè)計思想,首先我們來看一下什么是封裝。

封裝:也叫做信息隱藏,或者數(shù)據(jù)訪問保護。放到程序上來講,就是隱藏類的屬性,還有實現(xiàn)細節(jié),僅對外公開一些接口。那么外部,就只能通過這個類暴露的這些訪問接口,按照這個類提供的方式來訪問類的內(nèi)部信息或者數(shù)據(jù)。這樣子的一種情況就叫做封裝。

作為做Java的我們來講,封裝,我們是非常非常熟悉的,因為一開始學Java,學面向?qū)ο螅蜁v封裝、繼承和多態(tài)。

接下來,我們就來談一談,到底面向?qū)ο螽斨蟹庋b的本質(zhì)是什么。其實從字面意義上理解封裝,就是把什么東西包裝起來,進一步說就是一個封裝體。事實上大家想,面向?qū)ο螽斨校?strong>類是不是就是一個封裝體?

大家想想,類里面封裝的什么呢?無外乎就是一些屬性,就是一些數(shù)據(jù),然后是方法,其實可以代表它的功能。

也就說一個類,它就是封裝了一定功能的這么一個封裝體。

當然,封裝并不僅僅只是對一個類而言,你可以擴大一點,以此類推,從設(shè)計的角度來看:一個組件是不是一個封裝?只不過它封裝的,不再是屬性、方法,它里頭封裝的就是一個一個的,其它組件或者模塊,或者是類。

以此類推,組件是一個封裝體,那模塊是不是一個封裝體? 子系統(tǒng)是不是一個封裝體?系統(tǒng)是不是還是一個封裝體?

只是范圍大小不同而已,所以大家會發(fā)現(xiàn),封裝是咱們做架構(gòu)設(shè)計一個非常非?;A(chǔ)的、非常重要的思想。

咱們再從另外一個角度來看一看,類,它其實是代碼功能的一個封裝,或者說是一個聚合方式。

沒有面向?qū)ο笾埃蹅兘凶雒嫦蜻^程設(shè)計,或者叫過程化設(shè)計。大家可以理解成是這樣,這里面有一堆的代碼,我們稱之為函數(shù),或者說是一些過程。

在過程化設(shè)計里面,這些功能都是比較散亂的堆放在一起,也就說每一個功能只管自己,跟其它功能沒有什么聯(lián)系。但后來大家覺得,這樣子去擺放代碼非常的不友好。要想找一個功能,尤其是帶流程的,那就在里頭跳來跳去,非常的亂。

大家就想到一個辦法:把相關(guān)的一些功能,比方說發(fā)現(xiàn)這里的功能是相關(guān)的,都是用來做,比方說用戶數(shù)據(jù)的管理。我們就可以把這個東西封裝起來,然后就演化成,可以用一個類來封裝這些東西,就開始面向?qū)ο笤O(shè)計了。

這些功能都是相關(guān)的,都是用戶這個對象應(yīng)該要實現(xiàn)的功能,也就說從代碼的角度,也能夠感覺得到,面向?qū)ο笤O(shè)計實際上就是把原來這些過程化設(shè)計當中,雜亂無章的這些函數(shù)或者是功能,按照一定的方式重新進行組織,把它們封裝到一起。所以說呢,從某種意上說,類是代碼的一種聚合方式。

咱們一個完整的軟件系統(tǒng),就是由大大小小的,各種不同的這種封裝體聚合起來的。就好比說一個大的軟件系統(tǒng),又分成了很多的子系統(tǒng),這個子系統(tǒng)其實也是一種封裝。

這個子系統(tǒng)又包含另外的子系統(tǒng),每個子系統(tǒng)里面可能有很多的模塊或者是組件,這些組件里面又有很多具體的功能,也就是它封裝的是一定的功能。 這不就是大大小小的封裝,最終合起來就是你的這個系統(tǒng)。

所以說大家要從架構(gòu)設(shè)計的眼光來看待這些問題。你看一個大的軟件系統(tǒng)不就是大大小小的各種各樣的封裝體嗎?至于這里頭到底封裝的是什么。這個東西就看你怎么劃分了,直到最后落實到具體的功能上。

從設(shè)計上來講,到底封裝什么呢?對于每一個封裝體來說,主要就是為了把核心業(yè)務(wù)部分,或者是核心功能部分封裝起來。那么這么封裝起來有什么樣的好處呢?也就是為什么要封裝呢?

大家想想,當你把這些核心功能封裝起來過后,首先對核心功能是一個安全保護。另外呢,也是為了復(fù)用這些核心的功能,除了這些呢,把這包裝起來的目的,是為了可修改,可維護,可擴展。

有些人說,怎么還會可修改可維護呢?很簡單,你把這些功能封裝在這個,比方說橢圓里面封裝了一堆的功能,事實上,這內(nèi)部的功能和外部是不是就分開了?你封裝的這些功能是不是就可以單獨的進行修改,進行維護,并且進行擴展。

只要對外提供的接口不發(fā)生變化,那你封裝起來的這一塊,是不是就可以隨便改了。所以說呢,從某種意義上來說,也是封裝了變化。

當你覺得這一塊以后可能會變,就可以把這塊先包裝起來,那么以后的變化,就可以在封裝體內(nèi)來實現(xiàn),而不會影響到外部。當然這個了,跟咱們接下去要講的一個思想:隔離,是息息相關(guān)的,或者是有類似之處的??傊?,大家會發(fā)現(xiàn)封裝對我們來講,是一個非常非常重要的思想,我們一定要重視對他的理解。

為了大家更好的交流架構(gòu)設(shè)計的思想和知識,大家可以加微信sishuok,拉你進架構(gòu)設(shè)計學習群,一起共同學習,共同進步。


大道至簡的架構(gòu)設(shè)計思想之:封裝(C系架構(gòu)設(shè)計法,sishuok)的評論 (共 條)

分享到微博請遵守國家法律
宁波市| 新和县| 孙吴县| 滕州市| 比如县| 巨鹿县| 永靖县| 田林县| 林芝县| 沙坪坝区| 裕民县| 鄂州市| 水富县| 阜康市| 台湾省| 克山县| 鄂托克前旗| 资讯 | 吐鲁番市| 德惠市| 新闻| 湘潭市| 台前县| 连州市| 大兴区| 广德县| 黎川县| 黄山市| 湖口县| 池州市| 贵阳市| 贵州省| 互助| 两当县| 惠水县| 津市市| 林甸县| 寻乌县| 北川| 柳江县| 青川县|