五月天青色头像情侣网名,国产亚洲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ù)雜?的評論 (共 條)

分享到微博請遵守國家法律
菏泽市| 南宁市| 英德市| 林芝县| 滁州市| 河北区| 师宗县| 三门县| 铜梁县| 长岭县| 乾安县| 宁武县| 新泰市| 广平县| 宣恩县| 宁晋县| 上栗县| 福州市| 珠海市| 汝城县| 德安县| 慈利县| 德州市| 东辽县| 乌什县| 临澧县| 方正县| 磴口县| 东乌珠穆沁旗| 祁连县| 白沙| 正镶白旗| 延津县| 柘荣县| 西盟| 宝丰县| 盐山县| 东乌珠穆沁旗| 龙南县| 绥滨县| 永泰县|