Шаблон проектирования для создания объекта из файла? - PullRequest
2 голосов
/ 01 июля 2010

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

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

public class BusinessObject {

    private BusinessObject() {}

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

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

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

Спасибо

Martin

Ответы [ 3 ]

0 голосов
/ 02 июля 2010

Похоже, вы делаете Фабрику .

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

0 голосов
/ 02 июля 2010

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

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

0 голосов
/ 02 июля 2010

Звучит так, будто вы ищете либо десериализацию, либо один из конструктивных шаблонов, таких как фабрика

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...