Foreword 抽象和接口是Java中的兩個關(guān)鍵字,也是兩種最基本的優(yōu)化軟件項目手段。為什么說它們是一種優(yōu)化項目的手段? 人分三六九等,不同等級的人,所接觸的事和處理的事是不一樣的。同理,項目也分大項目和中項目和小項目,大、中、小項目所承載的目標也是不一樣的。 先說小項目,如果你使用Java只是寫
抽象和接口是Java中的兩個關(guān)鍵字,也是兩種最基本的優(yōu)化軟件項目手段。為什么說它們是一種優(yōu)化項目的手段?
人分三六九等,不同等級的人,所接觸的事和處理的事是不一樣的。同理,項目也分大項目和中項目和小項目,大、中、小項目所承載的目標也是不一樣的。
先說小項目,如果你使用Java只是寫一個小腳本,比如更新一下系統(tǒng)時間,自動點擊某個軟件按鈕,修改表格數(shù)據(jù)...類似這樣的功能。對于這種小項目,項目里無非三、兩個功能函數(shù),有個Main按照順序調(diào)用一下即可,那么這種項目就永遠都不需要使用到抽象和接口。用了反而是累贅,有畫蛇添足的味道。
但是對于大項目就不同了,比如一個大型的電商系統(tǒng),用戶的需求多、使用人群廣、數(shù)據(jù)類型多且需要一定關(guān)聯(lián)度。商品種類多、店鋪的類型各異...,當然這些都是在系統(tǒng)設(shè)計階段的麻煩。在開發(fā)階段的麻煩是,不同項目組的人都做不同的模塊,一個項目組的人怎么配合也是麻煩,最后數(shù)據(jù)對接起來也是麻煩、前后端之間的數(shù)據(jù)對接...,怎么樣,想想都頭疼了吧。
為什么說有了抽象和接口,能給大型項目帶來便利、優(yōu)化?
一些前人留下了一些經(jīng)典的設(shè)計模式,比如單一模式,指在設(shè)計的時候要保證類的單一功能,如果完全按照這種模式,那么業(yè)務(wù)的實現(xiàn)會變成無數(shù)個類,并且代碼間非常耦合,在修改業(yè)務(wù)需求和代碼的時候,都是一場災(zāi)難。
接口則是解耦的最基本工具,接口允許將方法的定義與其實現(xiàn)分開,這種分離使得多個不相關(guān)的類能夠?qū)崿F(xiàn)同一組方法,從而保證了項目中不同部分之間的相互通信。
抽象類非常適合多個子類共享共同特征和屬性,但也兼容自己獨有的行為情況,同時為子類的定制實現(xiàn)留出空間。
這個現(xiàn)象讓我想到對有序數(shù)組的排序:
就類似對有序數(shù)組進行排序,使用冒泡排序和二分查找算法去實現(xiàn),雖然都能完成這個效果。但是它們的時間復(fù)雜度差異也很大,差了一個數(shù)量級。
同樣的,你不使用抽象和對象也一樣能實現(xiàn)大型項目,但是效果不一樣,在管理的復(fù)雜度上也不一樣。
如果說冒泡和二分體現(xiàn)的差異在時間和空間上。那么設(shè)計不合理的項目,就體現(xiàn)在在代碼的工作量上。
當然,項目中增加了抽象和接口,新人的理解難度也直線上升,這也逼迫這個項目的程序員都必須得安裝OOP思想,才能上手這種項目。
小編推薦閱讀機器學(xué)習:神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)