国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

最少知識原則之模式的黃金原則

Ocean / 823人閱讀

摘要:最少知識原則的終極目標的是實現完全傻瓜式的程序。我們如何做到解除對象間的耦合性主要手段還是很多的。最少知識原則的實現其實,最少知識原則和單一原則所達到目的是相似的,一個是,讓你的程序對外盡量簡單,一個是讓你的程序里的對象,相互聯系盡量簡單。

最少知識原則的終極目標的是實現完全傻瓜式的程序。 舉個例子吧, 就比如 美圖神器, 你上傳一張鳳姐的照片后,你可以選擇 自然磨皮,高度磨皮 -> 瘦臉,瘦腿模式 -> 美瞳-> 手動豐胸等等。 當然, 你也可以直接使用一鍵美化,瞬間angelababy. 你完全不用關心,這些軟件是怎樣實現這些功能的,讓你變美變美變的更美就夠了。 而且,更人性化的是,他提供了一鍵美化的功能,更讓你瞬間美美噠。
好吧,回到現實。
我們在程序中,把這個行為就叫做最少知識原則。他的要求就和上面一樣,你的程序暴露的接口要是最傻瓜式的,否則你就是反人性!!!
我們來具體說一下實現吧。

減少對像間的耦合性

說幾個應用場景吧
看個圖

這是我們現在對象間的關系,如果你的leader要你去實現這個業務,我覺得,我寧愿辭!職!
所以,這種反人性的事情,我們是不會做的。 我們一般會,自己動手改一下。

哈哈哈!!! 要知道 一維的難度 << 二維的難度.
看見這樣的實現,心里也放心多了。 這個其實就是中介者模式,里面使用了最少知識原則, 本來對象間的聯系可謂是 超!級!復!雜!。 但經過重構和優化之后,瞬間降低了一個量級。
關于一些具體實例,大家可以參考一下 前面的 中介者模式 里面所介紹的。
我們如何做到解除對象間的耦合性主要手段還是很多的。 比如學習中介者模式,在對象間創建一個中介者來管理一切。 而其中使用的手段就是封裝和隱藏。
封裝在程序中起到的作用就是,封裝內部數據,封裝操作,然后暴露一個最直接的接口。
同樣,再拿單例模式來說一說。

var single = (function(){
    var result;
    return function(obj){
        return result||(result=obj);
    }
})();

將保存結果的變量放到閉包里面,完美的包裝了數據,既不會污染全局,而且也十分方便調用。

最少知識原則的實現

其實,最少知識原則和單一原則所達到目的是相似的,一個是,讓你的程序對外盡量簡單,一個是讓你的程序里的對象,相互聯系盡量簡單。 關于如果實現的話,其實,就是封裝參數,封裝函數等這一類的手段,而這些在模式介紹中已經闡述的很清楚了,這里就不做過多的講解。 如果有興趣可以看看前面 的 中介者模式,代理模式,策略模式等。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78569.html

相關文章

  • 單一職責原則模式黃金法則

    摘要:今天說一下,單一職責原則。比如,接口的地址本來已經很完美了,但是你的是處女座最討厭處女座非要給路由添加幾個以保證后臺數據的安全。為了過年,我會選擇使用,因為不知道處女座以后會做出什么傻事來。此時的使用動態織入后,可以完美的解決處女座。 在設計模式中,有著幾條視為黃金原則,設計模式都是圍繞黃金原則,對代碼或者說是架構設計做出一些相應的調整,久而久之,GoF 4人組,發現其實有些設計思想可...

    GeekQiaQia 評論0 收藏0
  • 開放封閉原則模式黃金法則

    摘要:開放封閉原則應該算是這幾個原則里面最容易理解的一個。另外,語句就是開放封閉原則的死敵這個是狀態模式中的一個例子。處理開放封閉模式的特例我們都是人,不可能一開始都寫出完美的代碼。 開放-封閉原則應該算是這幾個原則里面最容易理解的一個。它的宗旨就是:如果你想擴展或者改變一個程序的功能,可以增加代碼,但是不能改變程序的源碼。如果,是對于那些碼農來說,最快捷的辦法就是改變源碼,但是我們面向的是...

    MasonEast 評論0 收藏0
  • 2018年系列設計模式匯總貼

    摘要:里氏代換原則里氏代換原則面向對象設計的基本原則之一。里氏代換原則是對開閉原則的補充。而基類與子類的繼承關系就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規范。 轉眼間已經進入了2018年,回顧過去的一年,才發現自己并沒有達到預期的目標。雖然有所提高,但是和自己的預期相差甚遠。希望能夠借著這個系列的開始,給自己的2018年開個好頭。 設計模式 設計模式(Design P...

    WilsonLiu95 評論0 收藏0
  • 設計模式軟件設計七大原則

    摘要:引申意義子類可以擴展父類的功能,但不能改變父類原有的功能。含義當子類的方法實現父類的方法時重寫重載或實現抽象方法,方法的后置條件即方法的輸出返回值要比父類更嚴格或相等。優點約束繼承泛濫,開閉原則的一種體現。降低需求變更時引入的風險。 0x01.開閉原則 定義:一個軟件實體如類,模塊和函數應該對擴展開放,對修改關閉 要點: 當變更發生時,不要直接修改類,而是通過繼承擴展的方式完成變...

    ixlei 評論0 收藏0
  • 迪米特法則

    摘要:個人博客原文迪米特法則設計模式六大原則之五迪米特法則。老師便給同學們講解了這個例子,讓學生感受一番迪米特法則。總結迪米特法則主要講述的觀點是高內聚低耦合。 個人博客原文:迪米特法則 showImg(https://segmentfault.com/img/remote/1460000017779272?w=960&h=520); 設計模式六大原則之五:迪米特法則。 簡介 姓名:迪米特法...

    OnlyMyRailgun 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<