策略模式的應用,我們以一個配置字典來說一下這個問題;首先這個字典用來管理若干個配置,每個配置項都有key和value,key是字符串,value是某種類型;我們通過一個ConfigServiceStrategy接口來規定配置的操作行為,通過ConfigServiceContext來表示一個配置上下文 ...
在UML(統一建模語言)中,泛化(Generalization)和特化(Specialization)是面向對象思想中繼承(Inheritance)關系的重要概念,它們描述類與類(或用例與用例、參與者與參與者等)之間的一般與特殊的關系。 ...
大家好,我是湯師爺~ 在這篇文章中,我們一起探討訂單履約系統的應用架構設計。 應用架構設計 我們前面討論了系統的核心概念模型和拆單邏輯。接下來,讓我們從應用架構的角度,深入了解系統的各個層次。這包括應用層、領域層,以及與其他系統的集成關系。 應用層能力 應用層定義軟件的應用功能,它負責接收用戶請求, ...
關聯和鏈接關系在很多情況下是對稱的,即被關聯的兩個類都有以自己為源端對方為目標端的角色存在。如果希望表達一種非對稱的關系,可以使用“組合”或“聚合”關系進行建模,而這兩者是類似但又有區別的兩種關系。 ...
無論何時當我們要使用一個多值對象時,我們必須要清楚兩個問題,一是這些值的順序重要嗎?二是允許重復值的存在嗎?在編程語言中還會有其他的明確的信息,在UML中,只需明確這兩個問題的答案即可確定對應的集合類型。 1.Set Set是一個不允許存在重復值且未排序的集合。 例如一個騎行活動中,有許多騎手參加。 ...
在UML中,多重性是指一個條目潛在的數量范圍。多重性可被用于屬性、操作參數、關聯關系。UML元模型也使用多重性對元模型元素之間的關系進行約束。多重性總是包含基數值,它是相關條目在現實世界中的確切數量。本文將說明類屬性和類操作參數的多重性。 一、屬性的多重性 假設我們需要定義一個表示書的Book類,它 ...
大家好,我是湯師爺~ 概念模型設計是系統開發的關鍵步驟,它能幫助我們厘清業務邏輯并定義核心實體。我們將從訂單履約的基本概念入手,深入探討各實體間的關系。 履約域核心概念模型 如圖展示了履約域的核心概念模型。 1、發貨單 發貨單是訂單履約過程中的重要執行單據,它將訂單轉化為具體的發貨任務。門店和倉儲部 ...
DDD你真的理解清楚了嗎?我通過這一系列知識分享,讓大家真正準確地理解DDD中這些晦澀的概念,今天探討“值對象” ...
裝飾模式(Decorator Pattern) 裝飾模式是一種結構型設計模式,旨在在不改變原有對象結構的情況下動態地為對象添加功能。通過將對象封裝到一系列裝飾器類中,可以以靈活和透明的方式擴展功能。 如果要擴展功能,裝飾模式提供了比繼承更有彈性的替代方案,裝飾模式強調的是功能的擴展和靈活組合。 裝飾 ...
大家好,我是湯師爺 最近幾個月,Cursor迅速走紅,成為一款強大的編程助手。Cursor不僅使用簡單,而且通過集成各種大模型技術,編程能力一流。 Cursor是什么? Cursor是一個類似VSCode的編輯器,集成了GPT-4、Claude 3.5等LLM模型。它本質上是在VSCode的基礎上添 ...
包是UML模型的組織結構,也是UML項目的配置管理結構。包存在多個層級,除了頂層包,所有包隸屬于一個且僅隸屬于一個上層包。在項目不同階段實際推進與配置過程中,通常以不同層級的包為單位進行check-in、check-out、打標簽及建立基準。許多項目會在計劃的時間點進行正式的官方評審,例如系統需求評 ...
命令模式把請求或者命令封裝成一個對象,從而讓我們可以使用不同的請求、隊列或日志請求、以及支持可撤銷的操作等功能。 ...
包是UML中管理元素的有效手段,UML中的所有元素均隸屬于某一個包,即使你沒有指定元素所屬的包,這些元素也會被置于一個默認包中,包的本質是命名空間。當我們在一個包中需要訪問另一個包中的元素時,可以使用符號“::”逐級引用。 例如在下圖所示的包圖中,存在兩支包含多個層次的包,如果包A3中的元素需要訪問 ...
了解UML的人都知道UML中也有包的概念,包在UML中作用與面向對象編程語言中類似,它是管理對象的工具,也是解決對象同名沖突的手段。 在UML中,包的表示圖形是一個左上角帶標簽的矩形,而包名可以標注于矩形中央(如下圖所示,包名Package1位于矩形中央)或者左上角的標簽之內。 將包名置于包圖形中央 ...
責任鏈模式是一種處理請求的模式,它讓多個處理器都有機會處理該請求,直到其中某個處理成功為止。每個處理器都包含對下一個處理器的引用,從而形成鏈式結構。責任鏈模式把多個處理器串成鏈,然后讓請求在鏈上進行傳遞。 ...
獲取IP地址信息時,一般我們需要一個HttpServletRequest對象,然后從請求頭里獲取x-forwarded-for的值,而當我們使用dubbo+netty開發rest接口時,如果希望獲取IP地址,HttpServletRequest是用不了的,你需要使用netty中的NettyReque ...
大家好,我是湯師爺~ 線上線下交易系統的應用架構包括終端、應用層、領域層和關聯系統。 應用層能力 應用層定義軟件的應用功能,負責接收用戶請求、協調領域層執行任務并返回結果。主要包括以下模塊: 1)C端服務模塊 為消費者提供完整的交易鏈路功能,包括加購、下單、支付、結算、拆單、確認收貨和退貨退款等。 ...
大家好,我是湯師爺~ 和退款單作為整個交易逆向系統的核心,支撐著售后管理環節。 售后域核心概念模型 1、退款單 退款單是記錄和跟蹤退款處理過程的核心業務單據,包含以下關鍵信息: 租戶ID:標識所屬商戶或組織 退款單ID:退款單的唯一標識 原訂單ID:關聯的原始訂單 業務類型:僅退款、退貨退款等 退款 ...