Это очень верно ... оборачивать логику в BusinessObject, чтобы сделать его самоосознаваемым, на мой взгляд, тоже лучше ... я не рассматривал этот вариант, хотя, потому что:
In 'приложение 'BusinessObjects находится в пространстве имен (.... ApplicationServices), на которое ссылается DAO, и поэтому оно не может фактически вызывать методы DAO (так как это может вызвать циклическую зависимость) - поэтому оно не может реализовать функциональностьдля
myCar.Wash(suds)
{
this.CleanlinessRating = suds.CleaningAbilityRating;
// persist the level of Cleanliness to the DB
CarDAO.Save(this);
}
Кажется, что предпосылка всего приложения заключается в том, что BusinessObjects вообще не реализуют никакой логики ... они являются просто контейнерами информации и не имеют никакого поведения.
Затем у вас есть классы BusinessLayer, которые действуют на сущности ...
Затем у вас есть классы DataLayer, которые сохраняют изменения в объектах БД.
Так что, очевидно, создание сущностей самостоятельноосознавать и реализовывать свое собственное поведение - это большое «нет нет» (в этом приложении) ... я уверен, что это реальная проблема здесь.
Howevэ-э, если я не могу это изменить, что бы вы сделали?
- Передать сущность методам, которые на нее воздействуют?ИЛИ
- Обернуть сущность в конструктор класса Helper?