Здравствуйте, vsb, Вы писали:
vsb>Здравствуйте, no4, Вы писали:
vsb>Непонятно, почему в FP сложно добавить вариант. Добавляем вариант, компилируем программу, вылазит кучу ошибок. Каждая ошибка это то место, где нужно добавить код обработки. Собственно всё.
В ОО не выставляется наружу внутренности того, что такое вариант.
В ОО можно доабавить свой вариант за пределами модуля, главное, чтобы он реализовывал контракт абстрактного варианта.
Т.е. есть явное описание интерфейса того, что предусмотрено для добавления нового варианта чтобы он вписался в систему.
vsb>Всё же это уже другая задача. В такой задаче ОО-подход нужен, соглашусь. Но тут речь идёт не о трудоёмкости, а принципиальной возможности.
Это примерно та же самая задача. Просто когда расширение владеется другими людьми хорошо иллюстрирует трудоемкость добавления варианта.
Но абстрагирование и разделения по модулям так же работает, когда код владеется другой командой в том же проекте или просто вообще у нас много кода.
vsb>Хотя я бы и этот подход сделал бы по-другому. По-мне лучше вынести такие операции в интерфейс плагина и всё. Что-то вроде
vsb> State processValidInput(byte[] input, State state); vsb>В таком варианте можно и state добавлять (например с нужными полями), и обработка остаётся в классе с поведением.
Я не очень понял. Вы можете привести чуть больше кода используя пример с полами?