Занятия по программированию: теория создания хороших классов - PullRequest
1 голос
/ 11 октября 2011

Как ученый, а не инженер-программист, я нахожу, что мой код, как правило, в порядке, но когда мне нужно что-то изменить, переписывание занимает больше времени, чем в оригинале.

Я пытаюсь понять, как разбить мой код на классы, чтобы сделать их многократно используемыми и сделать код более легким для чтения и понимания.

Я прочитал все, что говорит, что классы должны быть реальным объектом с параметрами, которые имитируют это, например. Автомобиль (двери, колеса, акселератор и т. Д.). Но я не считаю это полезным, когда речь идет о программировании, поскольку я обычно имею дело с таблицами и формами.

Пример, который я приведу, относится к C #, но моя проблема носит более общий характер.

У меня есть форма Windows, в которой целая куча полей со списками заполнена из таблиц. Некоторые из них заполняются на основе значений других полей со списком. Схема подключения несколько сложна, так как некоторые поля являются обязательными, а некоторые - нет, а некоторые поля зависят от других. Таким образом, существуют методы, позволяющие убедиться, что поля не пусты, заполнить их, очистить их, убедиться, что они существуют и т. Д. Есть также несколько вкладок для навигации, а также несколько кнопок для навигации и записи в файлы.

Кажется, что все это просто сбрасывается в Частичный Класс моей новой формы, которая наследуется от Формы. Несмотря на то, что я пытался убрать вещи отсюда, я обнаружил, что так много вещей должно ссылаться на данные в форме, что это просто создает больше проблем, чем стоит передавать или ссылаться на эту информацию в классах. Если я его раздаю, то обнаруживаю, что половина моего времени тратится на обход элементов управления, чтобы найти нужные для проверки, заполнения или получения информации.

Я не буду публиковать пример, потому что это, вероятно, приведет к физической и эмоциональной травме участников. Я просто надеюсь, что кто-то может указать мне правильное направление какой-то хорошей теории классов.

1 Ответ

2 голосов
/ 11 октября 2011

Если у вас есть вся основная информация об абстракции, наследовании, инкапсуляции и полиморфизме ..., то я бы предложил вам зачитать книги или статьи, связанные с Шаблоны проектирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...