В общем, такая проблема: У меня есть семейство классов, очень близких по смыслу.
Например, 1 класс имеет переопределенный метод базового класса, который чуть чуть отличается логикой. Другой класс так же в некоторых местах так же немного отличается. Когда мне нужно описать новую логику, которая снова чуть чуть отличается, то я снова вынужден делать новый класс, где теперь нужно проделать какую-то логику перед базовым алгоритмом.
Я чувствую, что можно пойти иным путем, что бы не плодить лишние сущности.
И вот я думаю, а можно все переделать таким образом, что бы можно на базе XML всем рулить или рано или поздно я во что-то упрусь и придется опять плодить похожие классы? Какие есть еще решения?
Давным-давно я слушал курс "Устойчивость систем". На одном из занятий, профессор, пожилой мужик с PhD из лондонского University College, спросил: "Как Гурвиц открыл свой критерий устойчивости?" Все задумчиво помолчали. И тогда он ответил: "Through hard thinking." (Это о способе создания гибкого ПО.)
То, что Вы описываете, это случай использования наследования ведущий к возникновению большой иерархии с короткими ответвлениями от основного узла или ствола. Такую иерархию можно значительно сжать/упростить, если вынести базовую и "чуть-чуть" отличающиеся логики в отдельный набор классов (а то и методов), которые передаются первоначальным классам (как параметры конструктора или как свойства).
При чем тут XML не совсем понятно, если только Ваши отличия в логике виртуальных методов не могут быть описаны конфигурационно.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В phpStorme есть watcher который компилит стили less в cssА как минифицировать css, который собран из less? - т
совсем недавно решил познакомиться с Vuejs и соответственно с созданием одно-страничного приложения
Есть калькулятор кухонь, при выборе определенных данных расчитывается стоимость заказаОтображается только 1-ый шаг, всем остальным задан...