//Метод создания вектора фабрики векторов public static IVector createInstance(int n) {
return factory.createVector(n);
}
//Ссылка на текущую фабрику векторов
private static VectorFactory factory = new ArrayFactory();
}
Проверим работу класса Vectors в FactoryTest.java (табл. 10).
Таблица 10 — Код FactoryTest.java
import vectors.Vectors; import vectors.Array; import vectors.ArrayFactory;
import vectors.CircularLinkedList; import vectors.CircularLinkedListFactory;
public class FactoryTest {
public static void main(String[] args) throws Exception { System.out.println("By default. ArrayFactory?: " +
(Vectors.createInstance(10) instanceof Array));
System.out.println("By default. CircularLinkedListFactory?: " + (Vectors.createInstance(10) instanceof CircularLinkedList));
Vectors.setVectorFactory(new CircularLinkedListFactory()); System.out.println("After change. ArrayFactory?: " +
(Vectors.createInstance(10) instanceof Array)); System.out.println("After change. CircularLinkedListFactory?: " +
(Vectors.createInstance(10) instanceof CircularLinkedList));
}
}
Результат компиляции и запуска приведен на рис. 2.
Рисунок 2 — Компиляция и запуск FactoryTest.java Заключение
В результате выполнения лабораторной работы мы ознакомились с механизмом шаблонов проектирования «Итератор» и упрощенной версией «Фабричного метода».