Я хотел бы создать свой базовый бизнес-класс, что-то вроде EntityBase, чтобы иметь какое-то общее поведение, например, реализовать интерфейс для отслеживания изменений в объекте (IsNew, IsDirty) и в интерфейсе INotifyPropertyChanges.Базовый бизнес-класс: это плохо?
Но многие люди говорят, что это плохая идея иметь базовый бизнес-класс и извлекать из него все ваши бизнес-объекты. Обычно они говорят, что плохо иметь код презентации в классе сущности. Но я думаю, что это просто теория. Что плохо на практике? Говорят: попробуйте сами. Обычно нет никаких аргументов.
Так что вы, ребята, думаете? Это хорошо или плохо? Если плохо, почему? Пожалуйста, постарайтесь быть практичным человеком, а не теоретическим.
Хорошо, давайте пойдем на практику. Что плохого, если я добавлю свойство IsDirty в свой бизнес-класс? – nightcoder
Нет ничего плохого, но поскольку вы хотите отслеживать эти изменения, я полагаю, вы также хотите отреагировать. Решением может быть добавление механизма событий, позволяющего другим типам контролировать и реагировать на изменения. Это позволит вам реализовать различные реакции в разных классах. –
Внешние классы будут реагировать на изменения, а не на бизнес-класс. Например, если IsDirty = true, то метод EntityService.Save (entity) сохранит его, а не пропустит его. Что плохо в этой схеме? – nightcoder