2010-07-01 3 views
2

Я создаю программный проект, в котором большинство бизнес-объектов хранятся в файлах (в унаследованном формате). Объекты будут создаваться только из входного потока.Дизайн шаблона для создания объекта из файла?

Я делаю это сегодня с созданием конструктор приватным и инстанцировании в статической функции следующим образом:

public class BusinessObject { 

    private BusinessObject() {} 

    public static BusinessObject fromStream(Stream stream) { 
     // Do initialization here 
    } 
} 

Я хочу, чтобы мой код, чтобы использовать установленные шаблоны проектирования, так как другие люди будут его модификации.

Является ли это известным рисунком или есть шаблон дизайна, который я могу использовать вместо указанного выше?

Спасибо,

Martin

ответ

0

Это выглядит вы делаете Factory.

Это может зависеть от того, что вы делаете на этапе инициализации, но вы можете просто создать конструктор, который принимает Stream. Если вы уже отказываетесь от нулевого конструктора и только разрешаете им создавать из Stream, это похоже на то же самое проще. Единственная причина, по которой я вижу, что это не работает, - это наличие нескольких подклассов BusinessObject.

+3

Ваша первая строка звучит так, как сказал бы Клиппи. – BenV

0

Похоже, что вы ищете либо десериализации или один из образцов строительных, как завод

0

Это очень хороший способ сделать это. Вы используете шаблон Factory.

В идеале вы можете использовать сериализацию/десериализацию в своей реализации, чтобы сохранить объект, но это не может быть для вас вариантом, если требуется устаревший формат.

Смежные вопросы