五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

如何把一段簡單的代碼變復(fù)雜?

2023-02-10 13:53 作者:阿呆帶你學(xué)編程  | 我要投稿

這問題你應(yīng)該去問企業(yè)級Java架構(gòu)師。

就比如print一句hello world吧。main函數(shù)里print一下?太面向過程,太low了。

得封裝一個類。叫Printer. Printer有個成員方法,叫print。

但是!光一個類太low了,以后要是有不同的實現(xiàn)怎么辦?所以得加一個接口。PrinterInterface。

但是!interface是沒有實現(xiàn)的,還是要有默認實現(xiàn)才行。所以得加個虛擬類,AbstractPrinter實現(xiàn)PrinterInterface,然后Printer繼承AbstractPrinter。

但是!你有了那么一套,該怎么創(chuàng)建實例呢?直接new Printer()?太low了,那叫實現(xiàn)依賴。肯定不行的,所以要搞一個工廠類,PrinterFactory,PrinterFactory用PrinterInterface返回實例,這樣就隱藏了實現(xiàn)細節(jié)了。

但是!PrinterFactory本身也是實現(xiàn)類啊,太low了,所以得有PrinterFactoryInterface, AbstractPrinterFactory.

而且在PrinterFactory里面該怎么寫呢?直接new Printer()? 太low了。還是實現(xiàn)依賴。

最后,你要把這一堆玩意在代碼里組裝起來,也太難看了,各種new實現(xiàn)類。太low!

好在我們有個高級玩意,叫依賴注入!把程序?qū)ο蠼Y(jié)構(gòu)全寫到配置文件里面。這一套當(dāng)然是不能自己造輪子的。配置Spring吧。搞了那么多l(xiāng)ib,靠命令行或者IDE的項目管理肯定不夠啊,得有依賴管理。Maven啊Gradle啊使勁上。

最最后,要print的東西怎么傳給程序呢?硬編碼?命令行傳參數(shù)?太low!當(dāng)然得寫在XML里頭。

光是XML當(dāng)然還不夠企業(yè)級,再加上DTD驗證吧。

然后就涉及到了XML解析的問題了。代碼里直接操起parser嗎?太low! 當(dāng)然要寫個parser的包裝類,interface, abstract class, implementation class, factory class再來一套。畢竟,不能依賴實現(xiàn)啊,以后我要是換parser了怎么辦。

所以最后是成品是一堆配置文件,一堆jar,compile出來的程序200MB。

IDE得裝上300個插件,打開項目硬盤響老半天吃掉2GB內(nèi)存,然后一堆插件彈提示要求升級。

哦對了,在這一切發(fā)生之前,還得畫UML圖呢。

三年后項目完工了,部署到客戶的服務(wù)器上一跑,立馬崩潰,一地的stack trace。原來客戶服務(wù)器上用的是JDK 5而新項目需要JDK 6. 然后問客戶你們不能升級嗎,答案是不行,因為另外一個企業(yè)級開發(fā)組給做的企業(yè)級解決方案只支持JDK 5。接著客戶把你們的架構(gòu)師臭罵了一頓,你搞了那么多設(shè)計就沒有想過可能會換JDK嗎?


如何把一段簡單的代碼變復(fù)雜?的評論 (共 條)

分享到微博請遵守國家法律
牡丹江市| 英吉沙县| 佛坪县| 辽源市| 西峡县| 三亚市| 阿拉善左旗| 长沙市| 湖北省| 炎陵县| 石阡县| 宝坻区| 武鸣县| 垦利县| 木里| 深泽县| 昌邑市| 寻甸| 靖安县| 永年县| 靖西县| 怀柔区| 元朗区| 绥宁县| 凉城县| 正宁县| 尤溪县| 武义县| 北票市| 景洪市| 公安县| 广水市| 萝北县| 保靖县| 夹江县| 定州市| 花莲县| 普兰店市| 祁阳县| 板桥市| 忻州市|