Как ученый, а не инженер-программист, я нахожу, что мой код, как правило, в порядке, но когда мне нужно что-то изменить, переписывание занимает больше времени, чем в оригинале.
Я пытаюсь понять, как разбить мой код на классы, чтобы сделать их многократно используемыми и сделать код более легким для чтения и понимания.
Я прочитал все, что говорит, что классы должны быть реальным объектом с параметрами, которые имитируют это, например. Автомобиль (двери, колеса, акселератор и т. Д.). Но я не считаю это полезным, когда речь идет о программировании, поскольку я обычно имею дело с таблицами и формами.
Пример, который я приведу, относится к C #, но моя проблема носит более общий характер.
У меня есть форма Windows, в которой целая куча полей со списками заполнена из таблиц. Некоторые из них заполняются на основе значений других полей со списком. Схема подключения несколько сложна, так как некоторые поля являются обязательными, а некоторые - нет, а некоторые поля зависят от других. Таким образом, существуют методы, позволяющие убедиться, что поля не пусты, заполнить их, очистить их, убедиться, что они существуют и т. Д. Есть также несколько вкладок для навигации, а также несколько кнопок для навигации и записи в файлы.
Кажется, что все это просто сбрасывается в Частичный Класс моей новой формы, которая наследуется от Формы. Несмотря на то, что я пытался убрать вещи отсюда, я обнаружил, что так много вещей должно ссылаться на данные в форме, что это просто создает больше проблем, чем стоит передавать или ссылаться на эту информацию в классах. Если я его раздаю, то обнаруживаю, что половина моего времени тратится на обход элементов управления, чтобы найти нужные для проверки, заполнения или получения информации.
Я не буду публиковать пример, потому что это, вероятно, приведет к физической и эмоциональной травме участников. Я просто надеюсь, что кто-то может указать мне правильное направление какой-то хорошей теории классов.