摘要:最少知識原則的終極目標(biāo)的是實(shí)現(xiàn)完全傻瓜式的程序。我們?nèi)绾巫龅浇獬龑ο箝g的耦合性主要手段還是很多的。最少知識原則的實(shí)現(xiàn)其實(shí),最少知識原則和單一原則所達(dá)到目的是相似的,一個是,讓你的程序?qū)ν獗M量簡單,一個是讓你的程序里的對象,相互聯(lián)系盡量簡單。
最少知識原則的終極目標(biāo)的是實(shí)現(xiàn)完全傻瓜式的程序。 舉個例子吧, 就比如 美圖神器, 你上傳一張鳳姐的照片后,你可以選擇 自然磨皮,高度磨皮 -> 瘦臉,瘦腿模式 -> 美瞳-> 手動豐胸等等。 當(dāng)然, 你也可以直接使用一鍵美化,瞬間angelababy. 你完全不用關(guān)心,這些軟件是怎樣實(shí)現(xiàn)這些功能的,讓你變美變美變的更美就夠了。 而且,更人性化的是,他提供了一鍵美化的功能,更讓你瞬間美美噠。
好吧,回到現(xiàn)實(shí)。
我們在程序中,把這個行為就叫做最少知識原則。他的要求就和上面一樣,你的程序暴露的接口要是最傻瓜式的,否則你就是反人性!!!
我們來具體說一下實(shí)現(xiàn)吧。
說幾個應(yīng)用場景吧
看個圖
這是我們現(xiàn)在對象間的關(guān)系,如果你的leader要你去實(shí)現(xiàn)這個業(yè)務(wù),我覺得,我寧愿辭!職!
所以,這種反人性的事情,我們是不會做的。 我們一般會,自己動手改一下。
哈哈哈!!! 要知道 一維的難度 << 二維的難度.
看見這樣的實(shí)現(xiàn),心里也放心多了。 這個其實(shí)就是中介者模式,里面使用了最少知識原則, 本來對象間的聯(lián)系可謂是 超!級!復(fù)!雜!。 但經(jīng)過重構(gòu)和優(yōu)化之后,瞬間降低了一個量級。
關(guān)于一些具體實(shí)例,大家可以參考一下 前面的 中介者模式 里面所介紹的。
我們?nèi)绾巫龅浇獬龑ο箝g的耦合性主要手段還是很多的。 比如學(xué)習(xí)中介者模式,在對象間創(chuàng)建一個中介者來管理一切。 而其中使用的手段就是封裝和隱藏。
封裝在程序中起到的作用就是,封裝內(nèi)部數(shù)據(jù),封裝操作,然后暴露一個最直接的接口。
同樣,再拿單例模式來說一說。
var single = (function(){ var result; return function(obj){ return result||(result=obj); } })();
將保存結(jié)果的變量放到閉包里面,完美的包裝了數(shù)據(jù),既不會污染全局,而且也十分方便調(diào)用。
最少知識原則的實(shí)現(xiàn)其實(shí),最少知識原則和單一原則所達(dá)到目的是相似的,一個是,讓你的程序?qū)ν獗M量簡單,一個是讓你的程序里的對象,相互聯(lián)系盡量簡單。 關(guān)于如果實(shí)現(xiàn)的話,其實(shí),就是封裝參數(shù),封裝函數(shù)等這一類的手段,而這些在模式介紹中已經(jīng)闡述的很清楚了,這里就不做過多的講解。 如果有興趣可以看看前面 的 中介者模式,代理模式,策略模式等。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78569.html
摘要:今天說一下,單一職責(zé)原則。比如,接口的地址本來已經(jīng)很完美了,但是你的是處女座最討厭處女座非要給路由添加幾個以保證后臺數(shù)據(jù)的安全。為了過年,我會選擇使用,因?yàn)椴恢捞幣院髸龀鍪裁瓷凳聛怼4藭r的使用動態(tài)織入后,可以完美的解決處女座。 在設(shè)計模式中,有著幾條視為黃金原則,設(shè)計模式都是圍繞黃金原則,對代碼或者說是架構(gòu)設(shè)計做出一些相應(yīng)的調(diào)整,久而久之,GoF 4人組,發(fā)現(xiàn)其實(shí)有些設(shè)計思想可...
摘要:開放封閉原則應(yīng)該算是這幾個原則里面最容易理解的一個。另外,語句就是開放封閉原則的死敵這個是狀態(tài)模式中的一個例子。處理開放封閉模式的特例我們都是人,不可能一開始都寫出完美的代碼。 開放-封閉原則應(yīng)該算是這幾個原則里面最容易理解的一個。它的宗旨就是:如果你想擴(kuò)展或者改變一個程序的功能,可以增加代碼,但是不能改變程序的源碼。如果,是對于那些碼農(nóng)來說,最快捷的辦法就是改變源碼,但是我們面向的是...
摘要:里氏代換原則里氏代換原則面向?qū)ο笤O(shè)計的基本原則之一。里氏代換原則是對開閉原則的補(bǔ)充。而基類與子類的繼承關(guān)系就是抽象化的具體實(shí)現(xiàn),所以里氏代換原則是對實(shí)現(xiàn)抽象化的具體步驟的規(guī)范。 轉(zhuǎn)眼間已經(jīng)進(jìn)入了2018年,回顧過去的一年,才發(fā)現(xiàn)自己并沒有達(dá)到預(yù)期的目標(biāo)。雖然有所提高,但是和自己的預(yù)期相差甚遠(yuǎn)。希望能夠借著這個系列的開始,給自己的2018年開個好頭。 設(shè)計模式 設(shè)計模式(Design P...
摘要:引申意義子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。含義當(dāng)子類的方法實(shí)現(xiàn)父類的方法時重寫重載或?qū)崿F(xiàn)抽象方法,方法的后置條件即方法的輸出返回值要比父類更嚴(yán)格或相等。優(yōu)點(diǎn)約束繼承泛濫,開閉原則的一種體現(xiàn)。降低需求變更時引入的風(fēng)險。 0x01.開閉原則 定義:一個軟件實(shí)體如類,模塊和函數(shù)應(yīng)該對擴(kuò)展開放,對修改關(guān)閉 要點(diǎn): 當(dāng)變更發(fā)生時,不要直接修改類,而是通過繼承擴(kuò)展的方式完成變...
摘要:個人博客原文迪米特法則設(shè)計模式六大原則之五迪米特法則。老師便給同學(xué)們講解了這個例子,讓學(xué)生感受一番迪米特法則??偨Y(jié)迪米特法則主要講述的觀點(diǎn)是高內(nèi)聚低耦合。 個人博客原文:迪米特法則 showImg(https://segmentfault.com/img/remote/1460000017779272?w=960&h=520); 設(shè)計模式六大原則之五:迪米特法則。 簡介 姓名:迪米特法...
閱讀 2581·2021-10-14 09:42
閱讀 1177·2021-09-22 15:09
閱讀 3578·2021-09-09 09:33
閱讀 3061·2021-09-07 09:59
閱讀 3677·2021-09-03 10:34
閱讀 3619·2021-07-26 22:01
閱讀 2857·2019-08-30 13:06
閱讀 1235·2019-08-30 10:48