簡體   English   中英

在DDD中,為什么他們經常使用方法而不是屬性?

[英]In DDD, why they often make use of methods instead of properties?

在DDD示例中,我經常看到使用可能使用過屬性的方法。 為什么是這樣?

例如(來自強化您的域名:聚合構建

public class Order
{
    public bool IsLocal()
    {
       return Customer.Province == BillingProvince;
    }
}

選擇方法而不是屬性的一個理由是,當有任何代碼可以執行某些操作時。 如果它只返回一些內部字段值,則使用property。 如果它內部有任何邏輯或進行任何計算使用方法。 這使得代碼客戶端更清楚,當您調用此方法時會發生某些事情。

我想我已經通過CSharp閱讀了CLR ,微軟感到遺憾的是讓DateTime.Now成為一個屬性而不是方法。 每次調用它都會返回新值。 那應該是方法而不是財產。

沒有理由用特定於DDD的方法替換getter。 一般指導原則適用於此(執行繁重計算或更改狀態時執行此操作)。

Setter是一個不同的案例。 有些人甚至認為它們是代碼味道。 每次看到二傳手都會產生懷疑。 在理想情況下,僅在名稱與域中的動詞一致的方法中更改對象的狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM