Фабричный шаблон Java, создающий объекты

Я разрабатываю решение на Java, и мне нужно создать n объектов на основе значений свойств. Я использую заводской шаблон проектирования.

Используя классический пример фигур и типов фигур

String myShapes="circle,square,circle,rectangle"  // This is from a property file
for ( shapeType : myShapes.split("," ) {
   ShapeFactory shapeFactory = new ShapeFactory();
   Shape shape1 = shapeFactory.getShape(shapeType ); 
   shape1.doSomething(); 
}

Может ли кто-нибудь сказать мне, правильный ли подход при создании объектов? Я не знаю, сколько объектов мне придется создать во время компиляции.


person Thelight    schedule 26.05.2015    source источник
comment
Выглядит нормально... Не могли бы вы пояснить, почему вы считаете, что это проблема?   -  person Alexei Levenkov    schedule 26.05.2015
comment
Можете ли вы опубликовать код для ShapeFactory?   -  person Harry.Chen    schedule 26.05.2015
comment
Это правильно, если ваш метод getShape возвращает определенный подтип Shape на основе переданной ему строки.   -  person AK47    schedule 26.05.2015


Ответы (1)


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

  • Когда вам нужно создать чрезмерно большое количество объектов, ваш проект должен быть эффективным с точки зрения использования памяти.

  • Отслеживание объектов (отслеживание похожих объектов с одинаковыми свойствами)

  • В проекте необходимо учитывать уничтожение объектов после их использования, так как большое количество объектов (создание их в цикле for!
    будет занимать много памяти!).

  • Это нормально, если сборщик мусора подбирает объект и уничтожает его в любое время во время выполнения? Реализация блока finalize необходима при работе с большим количеством объектов.

Вот несколько ссылок на несколько связанных тем.

добавлять объекты с разными именами через цикл for

http://www.java-forums.org/new-java/25967-loop-create-objects.html

http://www.java-forums.org/new-java/56024-create-new-objects-loop.html

https://www.java.net/node/675897

person Nirmal    schedule 26.05.2015