У кожному варіанті потрібно створити інтерфейс і реалізувати його в класах, які його наслідують.
Існують різні види водного транспорту, які використовують різні джерела енергії: електрика, бензин, вітер тощо. Є гібридні види водного транспорту. Загалом вони схожі й відрізняються переважно типом джерела енергії. До того ж ми можемо змінити джерело енергії, модифікувавши своє плавзасіб. У цьому випадку цілком доцільно застосувати патерн «Стратегія».
Існують різні види водного транспорту, які використовують різні джерела енергії: електрика, бензин, вітер тощо. Деякі плавзасоби є гібридними та можуть комбінувати кілька джерел.
Усі ці види транспорту подібні за своєю структурою, і головна відмінність полягає у виборі типу джерела енергії. До того ж, ми можемо змінювати джерело енергії, модифікуючи наш плавзасіб.
У такій ситуації доцільно застосувати патерн «Стратегія», щоб винести логіку вибору джерела енергії в окремі стратегії.
| Джерело енергії | Особливості |
|---|---|
| Електрика | Екологічно чисте, тихе, потребує зарядки |
| Бензин | Висока швидкість, доступність, але забруднює довкілля |
| Вітер (парус) | Повністю безкоштовне джерело, залежність від погоди |
| Гібрид | Комбінує кілька джерел, гнучкість використання |
Тут варто використати патерн «Стратегія».
Move()).У циклі n разів випадковим чином генеруємо число з діапазону [1,5]. Випадковим чином генеруємо довжини [10,50] трьох, двох або однієї сторін відповідно (довільний, прямокутний, рівносторонній, рівнобедрений, рівнобедрений прямокутний). Якщо можна побудувати трикутник із такими сторонами, обчислити його периметр і площу, застосувавши патерн «Стратегія».
Дано масив рядків, кожен рядок містить одне ціле число. Визначити користувацькі стратегії сортування, наприклад: сортувати список рядків за довжиною, за алфавітом, за зростанням чисел (реалізація інтерфейсу стратегії), залежно від заданої умови. У циклі n разів випадково генеруємо число з діапазону [1,3].
Авіакомпанії пропонують знижки протягом кількох місяців (липень–грудень). У вас може бути один модуль, який визначає правила ціноутворення залежно від номера місяця. У циклі n разів випадково генеруємо число з діапазону [1,12].
На сайті є групи користувачів: адміністратор, редактор і гість. Кожна група має свої особливості. Адміністратори можуть додавати, видаляти, редагувати і читати матеріали. Редактори — лише редагувати і читати. Гості — тільки читати.
Who і Read. Метод Who виводить тип користувача, метод Read — повідомлення “I read”.IAdding, IEditing, IRemoving такого вигляду:
public interface НазваІнтерфейсу
{ void Метод(); }protected IAdding addBehaviour;
protected IEditing editBehaviour;
protected IRemoving removeBehaviour;У готелі є групи працівників: адміністратор, покоївка, охоронець. Адміністратори можуть реєструвати гостей, видавати кімнати, заходити в номер, виписувати. Покоївки — лише заходити в номер і прибирати. Охоронець — тільки заходити в номер. Усі працівники можуть розмістити гостя в готелі.
Предметна область: АТС. АТС має список тарифів на міжміські розмови. Є два типи тарифів: звичайний і пільговий. У класі «АТС» реалізувати методи додавання звичайного тарифу та пільгового тарифу. Також — метод обчислення середньої вартості з урахуванням знижок.
Предметна область: Вокзал. Клас «Вокзал» має список тарифів на різні напрямки. Деякі тарифи мають знижку у відсотках. Реалізувати методи додавання тарифів (зі знижкою та без) і пошук найменшого тарифу.
Предметна область: ЖЕК. ЖЕК зберігає інформацію про мешканців. Є два типи: з пільгами та без. Реалізувати методи додавання мешканців і підрахунок загальної вартості наданих послуг.
Предметна область: Аеропорт. Каса аеропорту має список тарифів. Тариф — це напрямок і вартість перевезення. На деякі напрямки діє фіксована знижка. Реалізувати методи додавання тарифу і пошуку найдорожчого.
Предметна область: Банк. Система зберігає вкладників і суми вкладів. Деякі вкладники отримують додаткову фіксовану суму. Реалізувати метод додавання вкладника та обчислення загальної суми.
Предметна область: Відділ нарахування зарплат. Зберігаються дані про оплату за види робіт. На деякі — надбавка у відсотках. Реалізувати методи додавання і обчислення середньої оплати.
Предметна область: Фірма вантажоперевезень. Є список тарифів. Деякі мають знижку у відсотках. Реалізувати методи додавання тарифу і пошуку з найменшою ціною.
Предметна область: Готель. Зберігається інформація про номери та ціни. На деякі — знижка у відсотках. Реалізувати методи додавання і підрахунок середньої вартості.
Предметна область: Інтернет-провайдер. Зберігаються клієнти. Деяким надається фіксована знижка. Реалізувати метод додавання клієнта і підрахунок загальної вартості послуг.
Інтернет-провайдер зберігає інформацію про клієнтів. Деяким клієнтам надається фіксована знижка.
Необхідно реалізувати:
Для обчислення вартості послуг у різних клієнтів можуть використовуватись різні стратегії:
Клас Client зберігає інформацію про клієнта (ім’я, тариф, стратегію знижки). Клас Provider містить список клієнтів, метод додавання нового клієнта та метод підрахунку загальної суми.
Предметна область: Інтернет-магазин. Зберігаються товари з ціною та назвою. Деякі — зі знижкою у відсотках. Реалізувати метод додавання і пошуку товару з мінімальною вартістю.
Предметна область: Ресторан. Меню має тарифи: комплексні (сніданок, обід, вечеря) та фірмові страви. На комплексні надається фіксована знижка. Реалізувати метод додавання і пошуку найдорожчого замовлення.