Мне нужна отдельная коллекция «процессорных» классов (я использую Java), которые могут работать с конкретной формой, скажем, кругом.Некоторые из классов могут работать с абстрактной формой, в то время как другим требуется конкретный класс круга.
Проблема в том, что я не знаю ни одного языка или механизма проектирования, которые я мог бы использовать, чтобы избежать классов адаптера, таких как CircleSaver
.Если я не могу избежать этого, я буду создавать метод адаптера для каждого класса процессора, который требует конкретной формы.
Есть ли название для этой проблемы / шаблона?Есть ли решение для этого?
List<CircleProcessor> circleProcessors = new ArrayList<CircleProcessor>
(Arrays.asList(new CircleDrawer(), new CircleSaver()));
interface ShapeProcessor {
void execute(Shape circle);
}
interface CircleProcessor {
void execute(Circle circle);
}
class CircleDrawer implements CircleProcessor {
public void execute(Circle circle) {
// Draw circle
}
}
class ShapeSaver implements ShapeProcessor {
public void execute(Shape shape) {
shape.save();
}
}
// Adapter method that I would love to avoid
class CircleSaver implements CircleProcessor {
public void execute(Circle circle) {
new ShapeSaver().execute(circle);
}
}