日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

24.设计原则

發(fā)布時(shí)間:2023/11/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 24.设计原则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

總的來(lái)說(shuō)是高內(nèi)聚低耦合,內(nèi)聚是把變化點(diǎn)進(jìn)行封裝,耦合還是要有的,只是要盡量少,不同內(nèi)聚點(diǎn)的聯(lián)系方式有兩種,一種就是繼承,一種就是組合。組合又分為基于接口組合還是基于類組合,基于接口就可以靈活的改到聚合點(diǎn)的實(shí)現(xiàn),只要符合接口的規(guī)范就可以。

(一)抽象

現(xiàn)實(shí)世界和程序?qū)ο笾g的映射關(guān)系。不是像(相似)建模,是要對(duì)解決的問(wèn)題進(jìn)行抽象建模,要解決的問(wèn)題是可能發(fā)生改變的,所以組織對(duì)象的時(shí)候要考慮把可能的變化封裝起來(lái)。這件事很重要,怎么把現(xiàn)實(shí)問(wèn)題一步步映射成對(duì)象,再到代碼的經(jīng)驗(yàn),就是領(lǐng)域驅(qū)動(dòng)建模了。

(二)封裝變化

業(yè)務(wù)在不斷變化,,想要程序可以持續(xù)使用,就要在需求變化時(shí)容易改變程序。可以把變化的東西抽成一個(gè)方法,或者抽成一個(gè)類,取決于粒度。這樣同一個(gè)變化點(diǎn)以后改起來(lái)只要改一個(gè)地方就好。如果變的動(dòng)靜可能會(huì)很大,比如可能會(huì)把整個(gè)類都替換掉,可以把這個(gè)類提供的服務(wù)抽象成個(gè)接口,就可以滿足開(kāi)閉原則,對(duì)擴(kuò)展開(kāi)放,在修改關(guān)閉,設(shè)計(jì)模式就是封裝變化或者是滿足開(kāi)閉原則的經(jīng)驗(yàn)。

?

封裝,接口。

編碼:抽象成方法,如果是重要的領(lǐng)域概念,抽成類。再靈活些抽成接口。模式提供了一些封裝變化的模板,如策略,模板方法。

開(kāi)發(fā)管理:同樣的東西不要重復(fù)實(shí)現(xiàn),引用一處,變更容易。(如UI部門選擇樹(shù),以及從業(yè)務(wù)模塊接口)

架構(gòu):模塊間重復(fù)的邏輯,可以抽出基礎(chǔ)平臺(tái)。

實(shí)現(xiàn):第一步是對(duì)變化封裝。更進(jìn)一步抽象化是關(guān)鍵,更靈活的擴(kuò)展。

?

封裝變化有兩種類的形式,一種是繼承一種是組合。

?

?

?

?

(三)(is a)里氏代換原則

任何基類可以出現(xiàn)的地方,子類也一定可以出現(xiàn)。。

(四)合成優(yōu)于繼承

是抽象,合成比繼承在大部分情況下更適用,和里氏相輔,是實(shí)施規(guī)范。

原代碼程序設(shè)計(jì)

?

知識(shí)點(diǎn):

1組合和繼承

2在同一層次減少包裝類(包裝類有為想跨層時(shí)才有用)

3.更多可用的接口

4.太深的層次

5.應(yīng)用的靈活性(比如應(yīng)用可以根據(jù)自己的需求要不要向上層暴露底層是分庫(kù)分表的,有些業(yè)務(wù)可能需要知曉分庫(kù)分表-按分表做一些線程劃分,有些應(yīng)用不需要-查詢一些數(shù)據(jù)不關(guān)心這些數(shù)據(jù)都在哪些表里)

新的設(shè)計(jì)

?

?

?

(五)基于接口(依賴倒轉(zhuǎn)原則)

要依賴于抽象不要依賴于實(shí)現(xiàn)。開(kāi)放封閉原則是目標(biāo),依賴倒轉(zhuǎn)原則是手段。

A依賴調(diào)用B,A調(diào)用a1接口,B實(shí)現(xiàn)a1接口。從而B依賴于a1。

(六)單一職責(zé)

類,方法,變量都只做一件事,要不名字都沒(méi)辦法起。

不用看類的實(shí)現(xiàn),只看類名,就知道類做什么;不用看方法實(shí)現(xiàn),只看方法名,就知道方法做什么。(注:最多加上注釋,所以引出注釋的程度就是要和名字一起讓別人不用看實(shí)現(xiàn)就可以放心的使用它)引出了單一職責(zé)。

(七)接口隔離原則

不要提供大的總接口。是單一職責(zé)的子集。

每個(gè)類,或者方法都應(yīng)該盡可能少的對(duì)外提供服務(wù),這樣產(chǎn)生對(duì)象改變的原因就會(huì)單一,是封裝變化的一個(gè)更好的保證,變化封的更嚴(yán)實(shí)。

?

軟件要能靈活適應(yīng)變化,組件化,組件可替換,基于接口。

(八)最小可見(jiàn)性(迪米特法則)

一個(gè)軟件實(shí)體應(yīng)該盡量少的和其它實(shí)體發(fā)生相互作用。通向開(kāi)閉原則的道路。調(diào)用方調(diào)用夠用就可以,被調(diào)用方暴露盡量少的服務(wù)。

轉(zhuǎn)載于:https://www.cnblogs.com/guanpanpan/p/3414407.html

總結(jié)

以上是生活随笔為你收集整理的24.设计原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。