DDD領域建模被各個大小廠商提起並應用,而每個人都有自己的理解,本文就是針對小白,系統地講解DDD到底是什麼,解決了什麼問題,及一些建議和實踐。本文主要是思想的一種碰撞和分享,希望能對朋友們有所啟發或幫助。 ...
對類來說的,即一個類應該只負責一項職責。如類A負責兩個不同的職責,職責1,職責2。當職責1需求變更而改變A時,可能造成職責2智行錯誤,所以要將類A的粒度分解為A1,A2
錯誤的應用實例
package org.example.demo0; /** * @description: 單一職責原則 * @author: abel.he * @date: 2023-07-31 **/ public class SingleResponsibility { public static void main(String[] args) { Vehicle vehicle = new Vehicle(); vehicle.run("摩托車"); vehicle.run("汽車"); vehicle.run("飛機"); } } class Vehicle { public void run(String vehicleName) { System.out.println(vehicleName + "在公路上運行"); } }
正確的實例
package org.example.demo0; /** * @description: 單一職責原則(正確) * @author: abel.he * @date: 2023-07-31 **/ public class SingleResponsibilityCorrect { public static void main(String[] args) { Vehicle1 vehicle1 = new Vehicle1(); vehicle1.run("小汽車"); Air air = new Air(); air.run("飛機"); } } /** * 汽車工具類 */ class Vehicle1 { public void run(String vehicleName) { System.out.println(vehicleName + "在地上跑"); } } class Air { public void run(String airName) { System.out.println(airName + "在天上飛"); } }