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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

志宇-设计模式

發布時間:2024/3/26 asp.net 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 志宇-设计模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計模式

  • 源碼
  • 七個設計原則
    • 一、單一職責原則
    • 二、里氏替換原則
    • 三、依賴倒置原則
    • 四、接口隔離原則
    • 五、迪米特法則
    • 六、開閉原則(最核心)
    • 七、合成復用原則
  • 一、設計模式的分類
    • 狀態模式
      • 場景
      • 設計方案

源碼

七個設計原則

一、單一職責原則

思想
一個類 作一類事情 (不然高內聚)

二、里氏替換原則

思想
盡量不要重寫父類中已經存在的方法

三、依賴倒置原則

思想
將一個對象(類)傳入到另一個類中,要通過這個類的接口或者抽象進行接收(當添加一個功能時直接再寫一個接口實現類傳入即可)
代碼

//違反依賴倒置原則 public void fun(Persion persion){ } //正確寫法 public void fun(PersionInterface persion){ }

四、接口隔離原則

思想
實現接口,要求實現的方法都有用,不要實現多余的方法 (將接口拆分,然后分別實現)

五、迪米特法則

與本類為朋友關系的類為:
1.本類成員變量
2.本類方法中傳入參數
3.本類方法中返回參數
思想
如果在本類中出現非朋友關系的類,那么就違反了迪米特法則
(相當于 將不是本類的代碼寫在了本類中,目的不要將自己的代碼暴漏給別的類)

六、開閉原則(最核心)

思想
當開發好框架,當有新需求時 只用寫幾個實現類即可完成需求(通過擴展實現需求)
代碼

//如果想多加一種人創建一個類繼承ManPersion 即可 public void say(persionInterface persion){persion.say(); } public class ManPersion implements persionInterface {abstract say(); } public class MinManPersion extends ManPersion {void say(){} } public class MaxManPersion extends ManPersion {void say(){} }

七、合成復用原則

思想
盡量使用組合/聚合,少用繼承 (因java單繼承,繼承后擴展性降低)
替換繼承的方法
1.通過子類的構造方法將父類對象傳遞給子類
2.通過子類的set方法將父類對象傳遞給子類
3.在子類中創建父類對象,然后子類調用父類中的方法

一、設計模式的分類

總體來說設計模式分為三大類:
創建型模式(創建對象上使用的模型),共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式(代碼結構的模型),共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式(方法的模型),共十一種:策略模式、模板方法模式、觀察者模式、迭代器模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

狀態模式

簡單來說:就是根據不同狀態(參數),會有不同的行為(方法)
從而減少 if else 的使用

場景

有一個借貸平臺,它要給別人貸款
貸款有一系列流程,在每個流程都有不同的狀態(生成訂單、審核、發布、代付款、付款、已付款、完結) 這時候就要用到狀態模式的思想了,不然寫的代碼會很亂同時不方便維護

設計方案

總結

以上是生活随笔為你收集整理的志宇-设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。