POP----OOP-----AOP---DDD數據庫
描述:考慮問題是1234步驟編程
特色:簡單,沒法應對複雜需求架構
舉例子:把食物放冰箱數據庫設計
第一步:打開冰箱.net
第二步:塞進去食物設計
第三步:關冰箱對象
特色:把事物做爲對象考慮繼承
特性:封裝、繼承、多態作用域
描述:對象交互,完成功能開發
缺點:編譯時肯定,運行時肯定,不方便擴展
描述:既不修改類,又能擴展功能
好處:1.關注核心邏輯,Aop擴展公共邏輯
2.代碼複用,集中管理,方便 維護升級
應用場景:1.Asp.net.core--filter
2.AutoFac的Aop擴展
DDD領域驅動是什麼?
Domain-Driven-Design
解決的問題:系統規模日益變大,爲了方便擴展,劃分出更大的盒子
描述:一個系統都是爲了解決一個問題,能夠把總的系統當作一個大盒子,而後把一個大盒子拆分紅幾個子系統,子系統叫作領域
特色:拆分做用域之後,會有統一語言
例子:博客有發帖,回帖,用戶,積分,能夠把這四個功能當作四個領域,發帖,回帖,用戶,積分
描述:基於驅動領域設計,以目標爲導向,爲領域作設計
特色:完成領域需求,程序分析時,不考慮實現
描述:領域是核心,先肯定共同的領域,數據庫設計,代碼設計
與傳統開發對比:1.開發和需求統一規範不一樣
2.容易需求變動,需求分析不夠
3.傳統系統步驟:分析--數據庫設計--流程,一旦發生業務改變,整個系統變更特別大
畫盒子-----拆領域
描述:四個層次:UI(展現層)、Application層(應用層)、Domain(領域層)、Infrastructure(基礎設施層)
包含內容: 1.數據操做 2.數據存儲 3.經常使用幫助類 4.數據驗證
描述:最核心重要的,體系架構都是基於領域驅動的
包含內容:數據、業務、工廠、倉儲
領域約束:聚合跟(AgregateRoot)
倉儲:數據固化,操做數據庫
倉儲操做聚合根
描述:請求轉發,跨領域問題,這裏不包含任何領域邏輯
描述:用來頁面展現
包含:DTO(爲須要的字段作最小原子化,須要那些字段就展現那些字段)
貧血模型:沒有任何邏輯
完成交互,專門爲UI服務