Вариант 1. Требуется написать программу, которая рисует фигуру по заданному пользователем числу сторон
(0-круг, 1-отрезок, 2-угол, 3-треугольник и т.д)
Вариант 2. Требуется написать программу, которая рисует логический элемент по его условному имени (OR, NOR, NAND, AND, NOT)
1. Разработайте пользовательский интерфейс в соответствии с представленной раскадровкой (
- фигуру задавайте по числу сторон через TextField;
- для выбора логического элемента используйте menuButton)
2. Каждая фигура должна быть представлена отдельным классом унаследованным от класса Shape, содержащего абстрактные методы
draw() для рисования фигуры
discriptor() для вывода названия фигуры
приватные поля - color (цвет фигуры),
3. Реализуйте Фабричный метод для создания различных фигур
public class ShapeFactory {
public Shape createPolygon(int numberOfSides) {
if (numberOfSides == 3) {
return new Triangle();
} else if (numberOfSides == 4) {
return new Square();
} else if (numberOfSides == 5) {
return new Pentagon();
4. В классе Controller графического интерфейса пользователя реализуйте необходимые обработчики событий, использующий Фабрику
ShapeFactory shapeFactory = new ShapeFactory(); //get an object and call its draw method.
Shape shape = shapeFactory.getShape(1+fieldsides.getText());
GraphicsContext gc = canvas.getGraphicsContext2D(); //получить контекст(холст) для рисования
shape.draw(gc); //вызов метода рисования по холсту
Фабричный метод — это порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов
Для того чтобы система оставалась независимой от различных типов объектов, паттерн Factory Method использует механизм полиморфизма — классы всех конечных типов наследуют от одного абстрактного базового класса, предназначенного для полиморфного использования. В этом базовом классе определяется единый интерфейс, через который пользователь будет оперировать объектами конечных типов.
Для обеспечения относительно простого добавления в систему новых типов паттерн Factory Method локализует создание объектов конкретных типов в специальном классе-фабрике. Методы этого класса, посредством которых создаются объекты конкретных классов, называются фабричными.