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

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

Clean Code 無瑕的程式碼 第11章 系統(tǒng)

2021-06-18 22:23 作者:tkchenhaha  | 我要投稿

? ?? ? 第十一章非常非常重要!內(nèi)容有難度作者談到了系統(tǒng),讀者要對(duì)java有一定層度的了解,才能完全明白第十一章的內(nèi)容,我對(duì)Java不熟,在網(wǎng)路上找了一些文章,勉強(qiáng)知道部分內(nèi)容。

你要如何建造一個(gè)城市?

作者用城市比喻軟體,城市如同系統(tǒng)軟體有很多區(qū)域,每個(gè)區(qū)域有各自的功能。

劃分系統(tǒng)的建造與使用

「建造」與「使用」應(yīng)該要分開,如同蓋房子與住房子是兩件不同的事情。

大部分的城市卻沒有把兩件事情分開,出現(xiàn)延遲初始的情況。

public Service getService(){

????if(service == null)

????????service = new MyServiceImpl(....);

????return service;

}

上面的例子包含了延遲初始/延遲賦質(zhì)(LAZY Initialization/Evaluation)

延遲初始/延遲賦質(zhì)寫法的優(yōu)點(diǎn)

要使用的時(shí)候,再建立物件

初始化時(shí)間變短

保證函式不回回傳null

延遲初始/延遲賦質(zhì)寫法的缺點(diǎn)

相依於MyServiceImpl,等於程式寫死

測(cè)試會(huì)較困難

違反單一職掌原則

作者主張「建造的過程」要從「正常邏輯」分離出來。

主函式Main的劃分

最簡(jiǎn)單的方法將「建造程式」都移到主函式main或主函式呼叫的模組builder。

11-1的圖寫明了順序

1.build 先new 物件

2.再run程式

工廠

第一種方法是建立好物件可當(dāng)做參數(shù)傳給應(yīng)用程式。有時(shí)候應(yīng)用程式要負(fù)責(zé)「何時(shí)」要產(chǎn)生物件,此時(shí)可用抽象工廠模式。

11-2 應(yīng)用程式要用LineItem物件的時(shí)候,呼叫工廠建造程式可以得到物件。

相依性注入

這段內(nèi)容談到相依性注入、控制反轉(zhuǎn)??蓞⒖纪鹾榱料壬闹鳌段业某淌酱a會(huì)說話》7.2 相依性注入

相依性注入的另外一個(gè)名字控制反轉(zhuǎn),這種方式實(shí)現(xiàn)了程式碼的熱插拔。採用相依性注入,可以透過 xml 來配置名稱和運(yùn)算,進(jìn)行更自由的擴(kuò)展。

我的理解是程式建立物件的過程中,可以讀取外部xml創(chuàng)建物件。xml可以更改,程式就不會(huì)寫死變得有彈性。

這篇文章寫得淺顯易懂

IoC基本概念介紹

https://ithelp.ithome.com.tw/articles/10156571

擴(kuò)大

小城市起初在興建的時(shí)候不會(huì)考慮到以後會(huì)不會(huì)變成大城市,同樣的情況小程式起初不會(huì)考慮未來會(huì)不會(huì)變成大程式。

保持適當(dāng)?shù)年P(guān)注點(diǎn)分離,軟體系統(tǒng)的架構(gòu)就能夠遞增地成長。

說人話就是要想辦法降低軟體與軟體之間的相依性,軟體才可以擴(kuò)展與重複使用。

橫切關(guān)注點(diǎn)

AOP 觀念與術(shù)語

https://openhome.cc/Gossip/SpringGossip/AOPConcept.html

Java代理機(jī)制

從代理機(jī)制初探 AOP

https://openhome.cc/Gossip/SpringGossip/FromProxyToAOP.html

看文中的圖就能明白Java代理的奧妙,第十一章後半段講述的AOP剖面設(shè)計(jì)都在做類似的事情,差別在於方法不同。

平常寫程式的時(shí)候?qū)憀og就直接加上去,實(shí)際上除錯(cuò)程式都是對(duì)原本商業(yè)程式的「破壞」,這段程式變得無法再利用,也會(huì)造成不利於測(cè)試驅(qū)動(dòng)開發(fā),AOP要解決程式被「破壞」的問題。

純Java? AOP 框架

動(dòng)態(tài)代理

https://openhome.cc/Gossip/SpringGossip/DynamicProxy.html


AspectJ 剖面設(shè)計(jì)

測(cè)試驅(qū)動(dòng)的系統(tǒng)架構(gòu)

最佳化決策

聰明地利用可明顯增加價(jià)值的標(biāo)準(zhǔn)

系統(tǒng)需要特定領(lǐng)域的語言

總結(jié)



Clean Code 無瑕的程式碼 第11章 系統(tǒng)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
卓资县| 河北区| 申扎县| 梧州市| 邹平县| 厦门市| 扬中市| 梅河口市| 新乡市| 玉环县| 应用必备| 涪陵区| 商都县| 西昌市| 历史| 南召县| 休宁县| 肇州县| 镇远县| 买车| 开鲁县| 南康市| 泰宁县| 博野县| 阳谷县| 鄢陵县| 咸阳市| 建平县| 庆云县| 黔西县| 嘉黎县| 手机| 贵南县| 阜康市| 恭城| 轮台县| 榆中县| 安岳县| 尤溪县| 汕头市| 深水埗区|