Ich habe versucht, über DDD und Entität und Werttypen zu lernen. Ich frage den richtigen Weg, um Werttypen innerhalb eines Entity-Typs zu setzen. In der folgenden "Leader" -Klasse habe ich eine "SetAddress" - und "SetName" -Methode, ist dies die korrekte Art, Value-Typen innerhalb eines Entity-Typs zu aktualisieren?Domain Driven Design. Entitätstyp Design
Auch ich habe eine Liste von PhoneNumbers, was ist die empfohlene Methode, damit umzugehen? Sollte ich nur hinzufügen, eine Telefonnummer in die Liste EG-
leader.PhoneNumbers.Add(new PhoneNumber("12345", Mobile);
Danke für Ihre Hilfe:
public class Leader:Entity
{
public void SetName(string firstName, string surname)
{
Name = new Name(firstName, surname);
}
public Name Name { get; private set; } = Name.Empty;
public void SetAddress(string street, string city, string postode)
{
Address = new AddressDetails(street, city, postode);
}
public AddressDetails Address { get; private set; } = AddressDetails.Empty;
public List<Phone> PhoneNumbers { get; set; }
}
public class AddressDetails : ValueObject<AddressDetails>
{
public static readonly AddressDetails Empty = new AddressDetails(string.Empty, string.Empty, string.Empty);
public AddressDetails(string street, string city, string postode)
{
Street = street;
City = city;
Postcode = postode;
}
public string Street { get; }
public string City { get; }
public string Postcode { get; }
protected override bool EqualsCore(AddressDetails other)
{
return Street == other.Street &&
City == other.City &&
Postcode == other.Postcode;
}
protected override int GetHashCodeCore()
{
unchecked
{
int hash = 17;
hash = (hash * 23)^Street.GetHashCode();
hash = (hash * 23)^City.GetHashCode();
hash = (hash * 23)^Postcode.GetHashCode();
return hash;
}
}
}
Vielen Dank für Ihre Hilfe. Es macht alles Sinn. Es fühlt sich fast so an, als ob ich einen "PhoneList" - oder "PhoneCollection" -Typ benötige, um mit der Liste der Telefonnummern fertig zu werden. – Andrew