Ребзи, подскажите как это красиво решить, с точки зрения ООП.
Дан исходный класс, в котором есть 2 метода: save, delete.
Есть 2-N "типа" материалов, с которыми этот класс может работать. С каждым материалом можно проводить все эти действия, но с каждым нужно делать это по разному. Если подойти к задаче с точки зрения: вот так вот это будет работать, то можно сделать это так:
public function save($one,$type){
if($type == 'type_1'){
//some actions
}elseif($type == 'type_2'){
//else actions
}
}
..
Вполне логично, что это простой и действенный способ, и он долгие годы служил верой и правдой, но(!).
Теперь задача немного расширилась, и "типов" может быть больше чем 2, а следовательно допиливать код таким способом - не комельфо.
Вопрос: Как решить эту задачу с помощью современных техник ООП (интерфейсы, наследование, етц). Что бы для каждого типа можно было просто и легко делать расширение ф-ционала, скажем, добавлением нового класса.
Если вам не сложно, то можно с примерами кода.
// Забыл уточнить. Операции с методами происходят по одному и тому же алгоритму, меняются некоторые данные нужные для записи/чтения, работы по сети (разные параметры post' запроса).