From d16814561574e47765967c720a94b7a0f88cd210 Mon Sep 17 00:00:00 2001 From: Alex Kryvdyk Date: Fri, 23 Mar 2018 09:35:05 +0200 Subject: [PATCH] Make Address value object truly immutable It's better to remove private property setters to make Address value object truly immutable. Otherwise, it's possible to change the object by setting properties inside its methods for example. ``` protected override IEnumerable GetAtomicValues() { Street = "Blah blah blah"; City = "Blah blah blah"; // Using a yield return statement to return each element one at a time yield return Street; yield return City; yield return State; yield return Country; yield return ZipCode; } ``` --- .../AggregatesModel/OrderAggregate/Address.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs index 5579cf45e..1067edef9 100644 --- a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs +++ b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/Address.cs @@ -7,15 +7,15 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.O public class Address :ValueObject { - public String Street { get; private set; } + public String Street { get; } - public String City { get; private set; } + public String City { get; } - public String State { get; private set; } + public String State { get; } - public String Country { get; private set; } + public String Country { get; } - public String ZipCode { get; private set; } + public String ZipCode { get; } private Address() { }