Mostly home assignments
Block 1 UML OOP
Block 2 Factory Method
Block 3 Abstract Factory Method
Block 4 Builder Method
Block 5 Prototype Method
Block 6 Singleton Method
Block 7 Adapter Method
Block 8 Bridge Method
Block 9 Composite Method
Block 10 Decorator Method
Block 11 Facade Method
Block 12 Flyweight Method
Block 13 Proxy Method
Block 14 Chain of Responsibility Method
Block 15 Command Method
Realization
I have changed a bit the task, add some methods in purpose to make this task more realistic. Але поки не зрозумів, чи правильно я реалізував, бо в практиці трохи по інакшому. Я не зною як при створенні об'єкта через інтерфейс звертатись до методів об'єкта, яких немає у інтерфейсі(
Realization Методи не створював, лише конструктори оск на мою думку завданн полягає якраз в них. Realization Realization Code Реалізовано модель роботи кафе із використанням фабричного методу. Замовлення +- випадково рівномірно розподіляються з використанням нормального розподілу. Realization Реалізовано модель вказану в завданні із використанням шаблонів фабричного методу. Результат роботи програми зберігається в папці output де вказано необхідну інформацію напроти кожного виразу з вхідних данних. Також в кінці кожного текстового файлу на виході надано відповідь по максимальому та мінімальному розв'язку. Реалізація пошуку цих значень можливо потребує покращення. Realization Реалізовано модель закупки громадського транспорту, що використовує метод абстрактна фабрика для додавання нових виробників. Також результатом вивидить результуючу вартість вибору фірми. Адаптовано модель кафе із використанням абстрактної фабрики для кавових машин. Завдання містить велику кількість залежностей, щщо від чого можна визначати й моделювати. Реалізована модель використовує значення середньої кількості відвідувачів(однаковий) та параметра кавоварки - коефіцієнт задоволення, щоб розрахувати кількість клієнтів для подальшого вирахування ціни кафе. Результатом виводиться середня кількість клієнтів за день та ціна кави у меню для наявних виробниів. Реалізовано модель створення автомобіля з різними компонентами за допомогою методу Будівельник. Метод використовувався при зборі автомобіля та кузова для нього. Реалізовано модель створення текстового рядка використовуючи метод Будівельник. Реалізовано модель створення автомобіля з різними компонентами за допомогою методу Будівельник. Метод використовувався при зборі автомобіля та кузова для нього. Реалізовано модель створення текстового рядка використовуючи метод Будівельник. Реалізовано модель створення автомобіля з різними компонентами та з можливістю вкладеного клонуванняза допомогою методів Будівельник та Прототип. Прототип використовується у класах всіх складових автомобіля та у його власному. Потреби в додаванні інтерфейсу прототип, або в імплементації Clonable не було помічено оскільки при даній постановці задачі немає наборіб однакових класів чи наслідування. (Якби були клас автомобіль, мотоцикл, тягач, що складали б автопарк, чи були різні класи для сидінь або дверей тоді можна було б додати, а так має з'явитись у наступному завданні). З класу рівнянь прибрано зайві класи абстрактної фабрики й додано метод прототип, який дозволяє клонувати рівняння для подальших імплементацій. Реалізовано шаблон проектування Одинак для читання та обробки текстових файлів у програмі. Створено клас умовних користувачів, котрі асинхронно використовують файл. До завдання з шаблоном проєктування Будівельник додано шаблон Одинак. Оскільки робота ведеься не з данними а зі створенням нових екземплярів класу, і цу є основним поточним завданням програми вибрано спосіб Одтнака, де він створюється з самого початку. (у нього не ресурсозатратний конструктор, як було б з базами даних) Створено адаптер для бібліотеки методом iз використанням класу переходу.Проведно рефакторинг класів, із застосуванням шаблону проектування Міст. Додано ще одну реалізацію методу міст, котра включає в себе місце для замовлення(в дорогу/ в кафе) та містить список замовлень. Тобто Замовлення є абстракцією, де її місця окремі реалізації, а набір напоїв є імплементацією.
Проведно рефакторинг коду, із застосуванням шаблону проектування Міст.Проведено рефакторинг коду, із застосуванням шаблону проєктування Компонувальник так щоб програма могла розрахувати виплату заробітної плати працівникам супермаркету, що очолюється директором (менеджером) містить три відділи (м’ясний відділ, відділ молокопродуктів, кондитерський відділ), кожен з яких очолюється менеджером, та містить трьох співробітників-продавців. Із особливостей - є один клас бос, у котрого немає вищого керівництва, у менеджера, як і у продавця може ути керівник бос або менеджер. Продавець, у якого керівник бос вважається більш елітним (Для спеціальних замовлень)
Розглянуто клас PrintableString, що є контейнером для поля типу рядок та містить єдиний публічний метод для виведення цього рядка у консоль.Для цього класу описано набір декораторів:
PostComaDecorator – декоратор для додавання знаку кома у кінець рядка.
PostEndlDecorator – декоратор для додавання знаку кома у кінець рядка.
PostExclaimDecorator – декоратор для додавання знаку оклику у кінець рядка.
PostWordDecorator – декоратор для додавання слова у кінець рядка.
PreWordDecorator – декоратор для додавання слова у початок рядка.
Використовуючи цей набір декораторів виведено у консоль вираз
Hello, World!
починаючи з порожнього базового рядка.
Розглядається Beverage (Напій) та його нащадки Espresso (Еспресо), DarkRoast (Чорна кава), Decaf (Кава без кофеїну), що мають методи description() та cost(), що повертають опис кави та її вартість відповідно.
Опиcано декоратори для додавання до екземплярів вищенаведених класів додаткові наповнювачі – молоко, цукор, вершки, крем.
Використовуючи цей декоратор, створено такі напої:
Еспресо з двома порціями цукру.
Чорну каву з вершками та двома порціями цукру.
Чорну каву з кремом та порцією цукру.
Кава без кофеїну з молоком та двома порціями цукру.
Реалізацію симулятора здійснено з використанням шаблону проєктування Ланцюжок обов'язків. Не враховано можливі наявності дужок -3-(-4) та обмежена точність, бо числа розглядаються у форматі float.
Змодельовано роботу пульта керування увімкнення та вимкнення світильників.Реалізовано універсальний пульт, що здійснює вимикання світла усіх світильників у системі.
Змодельовано роботу пульта дистанційного керування для телевізора та радіоприймача. Реалізовано універсальний пульт, що вимикає всі пристрої в системі.












