Частина тексту файла (без зображень, графіків і формул):
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Навчально-науковий інститут атомної та теплової енергетики
Кафедра цифрових технологій в енергетиці
ЛАБОРАТОРНА РОБОТА №5
з дисципліни «Програмування на мові Java»
Варіант № 9
Тема: Успадкування та поліморфізмМета: Розробити консольний додаток..Завдання:
Розробити консольний додаток, що реалізував би патерн проектування «Абстрактна фабрика», відповідно до наведеної діаграми класів.
В ієрархію класів обов’язково включити методи з виведення результатів, за допомогою яких здійснюватиметься демонстрація результату генерації об’єктів.
/
Виконання роботи: Створюємо консольний додаток, та створюємо необхідні класи.
/
Наступним кроком прописуємо всі необхідні залежності, та описуємо методи класів:
Інтерфейс «AbstractFactory» :
package lr5;public interface AbstractFactory { public void CreateCircle(); public void CreateTriangle();}
Далі створюємо класи, які будуть реалізовуватися від «AbstractFactory».
Клас «WhiteFactory» :
package lr5;public class WhiteFactory implements AbstractFactory { public WhiteFactory() { System.out.println("WhiteFactory is created"); } @Override public void CreateCircle() { Circle circle = new WhiteCircle(); circle.show(); } @Override public void CreateTriangle() { Triangle triangle = new WhiteTriangle(); triangle.show(); }
Клас «BlackFactory» :
package lr5;public class BlackFactory implements AbstractFactory{ public BlackFactory() { System.out.println("BlackFactory is created"); } @Override public void CreateCircle() { Circle circle = new BlackCircle(); circle.show(); } @Override public void CreateTriangle() { Triangle triangle = new BlackTriangle(); triangle.show(); }}
Інтерфейс «Circle» :
package lr5;public interface Circle { public void show();}
Далі створюємо класи, які будуть реалізовуватися від «Circle».
Клас «BlackCircle» :
package lr5;public class BlackCircle implements Circle{ @Override public void show() { System.out.println("This is BlackCircle"); }}
Клас «WhiteCircle» :
package lr5;public class WhiteCircle implements Circle { @Override public void show() { System.out.println("This is WhiteCircle"); }}
Абстрактний клас «Triangle» :
package lr5;public interface Triangle { public void show();}
Далі створюємо класи, які будуть реалізовуватися від «Triangle».
Клас «BlackTriangle» :
package lr5;public class BlackTriangle implements Triangle{ @Override public void show() { System.out.println("This is BlackTriangle"); }}
Клас «WhiteTriangle» :
package lr5;public class WhiteTriangle implements Triangle { @Override public void show() { System.out.println("This is WhiteTriangle"); }}
Створюємо наступний клас для створення екземплярів класів «Сircle» та «Triangle» відповідної фабрики.
Клас «Client» :
package lr5;public class Client { public Client(AbstractFactory abstractFactory) { abstractFactory.CreateCircle(); abstractFactory.CreateTriangle(); }}
Наступним кроком реалізовуємо функціонал введення кольору та створення екземплярів класу «AbstractFactory» та «Client».
«Main»:
package lr5;import java.util.Scanner;public class Main { public static Client createFigures(String color) { AbstractFactory abstractFactory; switch (color.toLowerCase()) { case "white": abstractFactory = new WhiteFactory(); break; case "black": abstractFactory = new BlackFactory(); break; default: return null; } return new Client(abstractFactory); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter color:"); String color = sc.nextLine(); Client client = createFigures(color); }}
Результати:
/
/
Висновок: Під час виконання лабораторної роботи, було набуто навички з розробки консольної додатку, що реалізував би патерн проектування «Абстрактна фабрика», відповідно до наведеної діаграми класів.