ОК, прежде всего это делается на Java:
Я десериализую текстовый файл. Каждая строка приводит к объекту из совершенно другой иерархии классов.
Затем я передаю эти объекты другому объекту, назовем его «Writer», у которого есть метод с именем «write (x)», который затем сериализует часть этого объекта в другой формат.
Поскольку каждый десериализованный объект относится к разной иерархии классов, я не могу обработать каждый объект одним и тем же модулем записи (содержимое также немного отличается каждый раз, так что все в порядке). Но меня беспокоит то, что в клиенте, который управляет всем этим процессом, мне приходится различать разные объекты.
Есть ли способ, чтобы "Писатель" мог решить для себя, что ему делать, без выполнения этой работы клиентом ...
Может быть, какой-то псевдокод поможет.
for(Line line : lines) {
x = one of several kinds of objects is instantiated;
w = one of several kinds of Writers is instantiated, analog to x;
w.write(x);
}
В идеале мой код должен выглядеть так, но в действительности каждая строка (кроме последней) является оператором switch, потому что я должен различать объекты ...
Надеюсь, это не смущает.