Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Вопрос по ООП |
Автор: Unforgiven 27.2.2013, 20:23 | ||||
Добрый вечер, На данный момент не силен в ООП, и возникает вопрос в логике создания базовых классов в .NET конкретной программы. Есть классы окон, отображающие информацию в DataGrid. Структура похожа, классы плодятся. Логично что надо выделить в базовый класс. Они взаимодействуют с классами модификации БД. Там все просто. 3 метода: Insert(DbRecord record) Update(DbRecord record) Delete(DbRecord record) DbRecord в данном случае - класс для хранятся названия столбцов и значений. Логично, что окна, наследуемые от базового класса и классы модификации БД, будут принимать на вход DbRecord (а точнее классы - наследники DbRecord). Как сделать логично DbRecord? В этом и суть вопроса. Пока есть только мысль в двух форматах:
или же что-то наподобие этого
Что не нравится? Чтобы организовывать взаимодействие между классами, особенно если название колонки поменялось или что-то еще, тяжело становится уследить за ошибками Хотелось бы услышать ваше мнение. Спасибо. |
Автор: AntonX 3.3.2013, 13:37 |
посмотри в сторону паттернов проектирования вот хорошая ссылка http://citforum.ru/SE/project/pattern/ для старта. Тебе нужен паттерн ActiveRecord/Repository + DataManager + MVC/MVVM/e.t.c По вопросу делегирования полномочий посмотри в сторону использования композиции вместо наследования. Композиция в твоем случае даст лучший результат при менее запутанной архитектуре. Перед началом еще почитай про "уровневую(слоистую) архитектуру" ПО |