国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

淺談解耦的意義---我們一直追求解耦,卻不知道她哪里好

2019-11-17 02:08:58
字體:
來源:轉載
供稿:網友

淺談解耦的意義---我們一直追求解耦,卻不知道她哪里好

談到解耦,就要提到設計模式,設計模式來源于分析模式,設計模式是分析模式的具體現話。 舉個例子,我們購買一個大件,像冰箱。

從客觀的角度分析,這種東西不是我們直接拿走的,那么我們簡化這個流程就是:你選擇冰箱,給錢,然后營業員給你生成訂單,送貨人發貨。如果說我們把選擇冰箱,下單付款,送貨期間作為粉色的時間,然后,我中間牽扯到的營業員,送貨人,客戶這類的參與者作為綠色,最后中間的權限例如業務員收錢的時候,從數據考慮,他是操作財務表的權限,訂單是操作訂單表的權限,這部分權限作為黃色,在領域模型中,在客觀世界中是綠色賦予了黃色在粉色期間執行操作。客觀總結起來就是指定人,擁有指定權限,做指定的操作

從三層的角度分析,我們是有數據表的,用戶表,訂單表,送貨表等等,在數據層和業務層到底分離的是什么,還是這個購物的例子,打個不恰當的比方:業務員收錢,為其生成訂單,實際上就是在操作數據,那么數據層拿走了這部分的工作。剩下的工作是,業務員哪兒來的收錢和操作財務權限?業務員怎么知道是誰要購買(誰是參與者)?這些就交給了邏輯層

將不同的職責封裝到不同的類或者模塊中,不正是面向對象的基本原則之一嗎(單一職責原則)。但我們使用抽象工廠的設計模式時,降低了數據層和邏輯層之間的依賴關系,創建對象依賴于工廠類和一套抽象接口依賴倒置的核心思想就是抽象上層模塊調用接口,下層模塊實現接口。

說到這里是解耦的過程,那么解耦的意義呢?

就像我們開發過程中一個人,從前臺到后臺到維護,到數據庫全管,就不如分工合作,內部的聯系越少,一個系統就越穩定,俗話說,多一個事不如少一事。還是用實際的來說話:業務是會變化的,但是操作數據庫,終歸是那些方法,業務改變的時候,我們無需改變數據層。即使需要新的數據層方法,也只是添加一個方法,無需改變業務層的舊代碼。剛才我們所說的又好像是分工的好處?其實來說,三層本身就是一個解耦的架構,三層的本身也是為可擴展性而生的,只是我們還需要繼續使用各種模式解耦,我們只能無限降低耦合度,但并不能根除,因為彼此失去了關聯就是去了意義。開放封閉原則說道:軟件實體(類,模塊,方法等)應該是可擴展的,意思是軟件模塊的功能可以變化,但是在拓展新功能的同時,不需要修改原有代碼,更不會影響到原有代碼。怎么能做到開放和封閉呢?還是抽象抽象的東西是穩定的,通常不需要修改,抽象的東西可以具體化為不同的實例,實現擴展。

中國夢就是個很好的面向對象設計。

中國夢可拓展:它可以拓展為農民的中國夢(擁有自己的土地),商人的中國夢(生意興隆等),運動員的中國夢(成為冠軍)

中國夢很穩定:雖然夢想千差萬別,但最終都可以歸于不變的中國夢。夢想的基類永不變。

2015-7-18補充

在團隊開發中,在無需過多了解其它層次的基礎上,可以將某一層作為一個有機的整體來理解,例如無需知道以太網的工作細節,照樣可以再TCP上構建FTP服務。

【摘抄自---企業應用架構模式】

一旦構建好某一層次,就可以用它為很多上層服務提供支持。因此,TCP/ip同時被FTP,telnet,SSH,HTTP使用。否則,所有這些高層協議都必須編寫他們各自的底層協議。

【摘抄自---企業應用架構模式】


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭苏县| 万载县| 萍乡市| 黄龙县| 安顺市| 临沂市| 库尔勒市| 庆元县| 哈巴河县| 山西省| 罗江县| 黄龙县| 个旧市| 花垣县| 恩平市| 眉山市| 老河口市| 日照市| 平定县| 龙里县| 富民县| 当涂县| 宝山区| 隆回县| 外汇| 北安市| 老河口市| 沾益县| 堆龙德庆县| 凉城县| 开化县| 宜兴市| 大兴区| 高阳县| 平陆县| 大冶市| 乌恰县| 蒙阴县| 昭觉县| 迁西县| 山东省|