货币是否是价值对象

| 我有个人汇总,这是根汇总
public class Person 
{
    private int id;
    private readonly PersonID personID;

    private readonly string email;
    private readonly string firstName;
    private readonly string lastName;

    private readonly string username;
    private readonly string password;
    private readonly Address BillingAddress;
}

public class Currency : IValueObject<Currency>
{
    private string name;
    private string currencyCode;
    private decimal rate;
    private string displayLocale;
    private string customFormatting;
    private int displayOrder;
    private bool primaryExchangeRateCurrency;
    private bool primaryStoreCurrency;

    //<summary>
    //Gets or a value indicating whether the currency is primary exchange rate currency
    //</summary>

    public bool IsPrimaryExchangeRateCurrency
    {
       get
       {
           return primaryExchangeRateCurrency;
       }
    }

   /// <summary>
    /// Gets or a value indicating whether the currency is primary store currency
    /// </summary>

    public bool IsPrimaryStoreCurrency
    {
         get
         {
                return primaryStoreCurrency;
         }
    }
}
和“货币”类,该类将在“人”类中引用。 因此,现在如果创建了Person实体,我们也需要将其与一种货币相关联,但是在创建的所有货币中,我想知道哪种是默认的主要商店货币。我不想通过Person来了解它,因为它仅包含一种货币。我想从人的所有已创建货币中获取一个货币PrimaryStoreCurrency。 我想在下拉列表中绑定货币,以便用户可以从下拉列表中选择其货币并在我们的系统中注册。 那么,我是否将Currency创建为单独的汇总?     
已邀请:
以下引用来自Eric Evans,他在其中描述了值对象:   代表   域的描述性方面   没有概念上的身份被称为   值对象。值对象是   实例化以代表   我们只关心的设计   他们是什么,而不是谁或谁   是。 关于此的另一参考是Dave Laribee在MSDN上有关域驱动设计的文章,他说:   值对象是描述符或   您在该域中重要的属性   正在建模。与实体不同,它们确实   没有身份;他们只是   描述确实有的东西   身份。您要更改实体吗   称为“三十五美元”或   您增加了   帐户? 使用这两个引用,我会说货币应该是值对象而不是实体。货币在时间上没有任何形式的标识-它是个人实体的描述性财产-我猜他们更喜欢用其结算的货币。 在两个不同的聚合中使用相同的Value Object根本没有问题。 另一个可能对您有帮助的好帖子是吉米·博加德(Jimmy Bogard)撰写的 在您获得其他信息之后: 我仍然要说,货币最好被建模为价值对象-它似乎仍然是不变的。 加载个人汇总时,需要查询的一部分来加载货币值对象,即主要商店货币。 要更新数据库中的货币(例如,更改为主要商店货币)或列出可用货币,您无需进行汇总,汇总并非对所有数据访问都是强制性的-它们仅用于协调实体之间的关系以可管理的方式。     
如果用“货币”表示应用程序中的货币定义(例如USD,EGP,EUR,..等),则它应该是可重用的实体。如果您指的是货币金额的价值,例如1000美元,则它是封装金额和货币类型的价值对象。     

要回复问题请先登录注册