面向對象設計自20年以來就廣爲人知。 Domain specific languages和域驅動設計已經成爲流行的動態語言,如Ruby或Python。如果您的域主要由對象組成,例如授予徽章或成就的子系統(如Stackoverflow上的徽章),那麼可以同時使用面向對象設計和域驅動設計,因爲徽章當然是一個對象。例如,對於Ruby,有兩個寶石來實現此功能,Badgeable和Paths of Glor
我想找出用面向對象的設計原則來封裝以下場景的最佳方法。什麼類型的設計模式最適合? 我在下面添加了非常基本的類定義,基本上一個人有一個計劃和一張信用卡。當一個人改變了他們的計劃,我們希望賬單它們的差值(如果計劃的成本爲更多),並創建一個事件 我可以這樣做是回調或觀察員,檢查Plan爲Person改變,但在具有大量交叉模型行爲的較大系統中,這變得難以管理並且難以用大量影響狀態的不相關回調進行測試。 c
假設方案: class ComplexProperty
{
string PropertyName {get; set;}
string Description {get; set;}
string GetParentName(); // How can this be implemented?
}
class Parent
{
string Pa