Здравствуйте, no4, Вы писали:
vsb>>Я считаю, что он не прав. Нет ничего плохого в switch-ах по всей программе.
no4>Image: OOP_FP_extend_easy_hard.jpeg
Непонятно, почему в FP сложно добавить вариант. Добавляем вариант, компилируем программу, вылазит кучу ошибок. Каждая ошибка это то место, где нужно добавить код обработки. Собственно всё.
no4>отсюда
no4>Есть нечто плохое. Представьте, что нужно сделать систему с плагинами, причем добавление пола должно осуществляться плагином.
no4>Как вы это сделаете со свитчами по все программе?
Всё же это уже другая задача. В такой задаче ОО-подход нужен, соглашусь. Но тут речь идёт не о трудоёмкости, а принципиальной возможности.
Хотя я бы и этот подход сделал бы по-другому. По-мне лучше вынести такие операции в интерфейс плагина и всё. Что-то вроде
interface State { ... }
interface Plugin {
State init();
State processValidInput(byte[] input, State state);
State processInvalidInput(byte[] input, Exception error, State state);
void finish(State state);
}
В таком варианте можно и state добавлять (например с нужными полями), и обработка остаётся в классе с поведением.