Хорошо, так что я на несколько лет дальше в своей карьере, и теперь у меня есть понимание ряда подходов при разработке / понимании программного обеспечения.
Кажется, то, что я описывал, кажется симптоматичныммодель анемичного домена и сценарий транзакции.В тех случаях, когда бизнес-правила, скрытые в методе / операции, используемой для персистентности, быстро запутываются, если их подставить в операцию создания / переноса / обновления в хранилище или в хранилище персистентности.
При таком подходе намеренные и бизнес-правила быстро теряются.
Один из способов облегчить это - использовать подход DDD и тщательно моделировать поведение так, чтобы только соответствующее состояние изменялось и затем сохранялось (скорее всего, для агрегата или объекта сущности / значения в этом агрегате).Это помогает обеспечить наличие контролируемой истории благодаря операции, явно указывающей, какое состояние изменяется.Например:
Customer.AddUsername(string username)
Где этот метод будет обновлять имя пользователя с областью действия, чтобы бизнес-правила играли в операции.