Страницы

Поиск по вопросам

четверг, 13 декабря 2018 г.

Для чего нужны классы [закрыт]

Возможно, глупый вопрос.
Есть у меня один большой класс - примерно четыре тысячи строк. Если я разделю его на несколько более мелких классов, даст ли это какое - то улучшение производительности? Что вообще даёт распределение кода на классы, кроме удобства его редактирования? Спасибо.


Ответ

Основная идея модульного программирования состоит в том, что большая задача делится на меньшие относительно независимые подзадачи (принцип «разделяй и властвуй»). В развитии модульного программирования — объектно-ориентированном программировании — этот принцип выражается в создании множества объектов, каждый из которых решает только свою собственную задачу.
Используемый вами антипаттерн проектирования называется Божественный объект, Ваш обьект делает настолько много, что обычным объектам это не под силу. Будем считать что у вас там пречется некоторая галактика, и вообще весь остальной код это декорация над этим объектом :)
Подход «божественного объекта» противоположен принципу «разделяй и властвуй»: основная часть функциональности программы кодируется в одном объекте. Так как этот объект хранит большое количество данных и имеет много методов, его роль в программе становится «божественной» (всеобъемлющей).
В итоге мы имеем непереносимый и плохо тестируемый код, в котором, к тому же, сложно разобраться. Так же, подобный код довольно сложно поддерживать, учитывая, что вся система зависит практически только от него. Проблема в том, что вся программа настолько становиться зависима от этого класса, что внесение изменений или попытка исправления ошибки становиться через какое-то время настоящим кошмаром.
Тот минимальный выигрыш в производительности, которого может не быть совсем, не стоит того, чтобы держать весь код в одном классе и каждый раз переписывать огромную долю своего кода, чтобы подстроиться под новые бизнес-процессы.

Комментариев нет:

Отправить комментарий