Мне недавно пришлось написать некоторый код, который анализировал файл, чтобы установить данные в объекте. Поскольку здесь было задействовано несколько объектов и соответствующих файлов, я решил отделить код синтаксического анализа.
Итак, у меня был один класс для разбора файлов, CommandFileParser
и два класса для каждого типа файла / объекта: один для самого объекта и один для возможных команд, которые могут использоваться для установки данных в объект , например VectorDrawing
и VectorDrawingCommands
. Методы последнего были бы вызваны CommandFileParser
с использованием отражения, поскольку он нашел их во входном файле, и применил данные к первому.
Но мне кажется, это действительно грязный способ сделать это. Я закончил тем, что повторял множество шаблонного кода, делая вещи вроде dataobject.value = value
во всех классах -Commands
. И мне не нравится иметь вспомогательный класс для каждого основного класса данных только для того, чтобы установить данные.
Может кто-нибудь предложить какие-либо идеи для более чистых и более подходящих способов сделать это?