无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ù)雜?的評論 (共 條)

分享到微博請遵守國家法律
兴业县| 宣威市| 河池市| 磐安县| 黄冈市| 民乐县| 潮州市| 平邑县| 龙井市| 南郑县| 南皮县| 诏安县| 平湖市| 行唐县| 自治县| 噶尔县| 同仁县| 峡江县| 庆元县| 历史| 旬阳县| 白玉县| 河源市| 黄山市| 阜城县| 贞丰县| 平舆县| 晋城| 弥渡县| 仁化县| 武定县| 揭西县| 永清县| 瑞安市| 剑川县| 治多县| 青田县| 额敏县| 萍乡市| 潢川县| 湟中县|