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

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

分享到微博請遵守國家法律
桂东县| 新乐市| 萝北县| 铁岭市| 江川县| 修文县| 崇文区| 本溪市| 南昌县| 万年县| 闽清县| 永和县| 湘乡市| 济南市| 红桥区| 扶绥县| 宜都市| 石楼县| 韶山市| 柳林县| 石狮市| 甘谷县| 丹巴县| 利津县| 囊谦县| 海阳市| 灌云县| 光泽县| 沙坪坝区| 盱眙县| 禄丰县| 滨海县| 神农架林区| 湘乡市| 祁东县| 中超| 常州市| 台江县| 泊头市| 巴林左旗| 延吉市|