Частина тексту файла (без зображень, графіків і формул):
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Навчально-науковий інститут атомної та теплової енергетики
Кафедра цифрових технологій в енергетиці
ЛАБОРАТОРНА РОБОТА №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); }}
Результати:
/
/
Висновок: Під час виконання лабораторної роботи, було набуто навички з розробки консольної додатку, що реалізував би патерн проектування «Абстрактна фабрика», відповідно до наведеної діаграми класів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!