无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

面向對象設計模式 -- 六大設計原則

2023-04-07 19:42 作者:原裝-_-老弟  | 我要投稿

面向對象設計模式 --?設計原則

????????寫代碼時,經(jīng)常性的會遇到許多糾結的問題,比如,在修改用戶信息時,猶豫是寫多個方法來分別實現(xiàn)對應信息的修改,還是寫一個類,根據(jù)某一參數(shù)來判斷是哪個數(shù)值的修改,然后在方法中一堆 if 或者 switch 來修改等等。

????????如果是,那很顯然,對于面向對象的設計模式,你還沒有了解太多,否則你會對這些猶豫的處理會很有條理。

  1. 單一職責

    一個對象或接口應該只包含單一的職責,且該職責被完整的封裝在一個類中。

  2. 開閉原則

    一個軟件實體(類、函數(shù)等)應該對外拓展開放,對修改關閉。

  3. 里式代換

    原定義:

    1. 第一種定義--If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T,the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T. 如果對每一個類型為S的對象o1,都有類型為T的對 象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序P的行為沒有發(fā)生變 化,那么類型S是類型T的子類型。

      就是說一個子類可以完全替換父類的使用。


    2. 第二種定義--Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it. 所有引用基類的地方必須能透明地使用其子類的 對象。


  4. 依賴倒轉

    ?????高層模塊不應該依賴底層模塊,應該都依賴于抽象;

    ? ? ?抽象? ? ? ?不應該依賴于細節(jié),細節(jié)應該依賴于抽象。

    ????就是說抽象應該是在抽象與細節(jié)之間是獨立的,不需要考慮已經(jīng)實現(xiàn)的細節(jié)。

  5. 接口隔離

    ?????不應繼承不需要的接口。

    ?????這里不是表面的類不繼承其他不需要的接口,還蘊含的潛規(guī)則是:已經(jīng)繼承的接口中也不出現(xiàn)不需要的接口。即,接口也應該保持自身的簡潔性。

  6. 合成復用

    ?????優(yōu)先使用對象組合,而不是繼承。

  7. 迪米特法則

    ????最少知識原則。即一個對象應該對其他對象有最少的了解。

    ?????對象在訪問其他對象時,可訪問的成員數(shù)量應該盡可能少。


參考:

設計模式之禪--秦小波


面向對象設計模式 -- 六大設計原則的評論 (共 條)

分享到微博請遵守國家法律
斗六市| 林西县| 宣威市| 兴海县| 革吉县| 上犹县| 禄劝| 万全县| 肥西县| 鹿邑县| 从化市| 海丰县| 红安县| 祁连县| 抚顺市| 沙洋县| 中西区| 临江市| 衡南县| 芜湖县| 海丰县| 盐山县| 钟祥市| 宝鸡市| 张家口市| 霍邱县| 寿光市| 胶州市| 江西省| 西乌珠穆沁旗| 宁城县| 汾阳市| 墨脱县| 喜德县| 佛山市| 枝江市| 临汾市| 景洪市| 集安市| 铜鼓县| 光山县|