Skip to content

sunmeat/ISP

Repository files navigation

Принцип розподілу інтерфейсу

Принцип розподілу інтерфейсу (ISP) – принцип розділення інтерфейсу – клієнт, що реалізує інтерфейс, не повинен бути змушений залежати від елементів інтерфейсу, які він не використовує.
Багато спеціалізованих інтерфейсів краще, ніж один універсальний.
Проблема: не всі методи, які описує інтерфейс, потрібні в тих класах, які його імплементують, тому потрібно розділити інтерфейс на менші, і імплементувати тільки ті, які необхідні.

=============================================================

завдання для практики на ISP:

  1. Створіть інтерфейс для графічного редактора, який буде розділятися на менші інтерфейси. Наприклад, інтерфейс для малювання фігур, інтерфейс для редагування кольору та інтерфейс для роботи з шарами. Переконайтеся, що кожен з цих інтерфейсів містить тільки ті методи, які необхідні для виконання відповідних завдань, і не включає в себе методи, які можуть бути використані в іншому контексті.

  2. Розробіть систему управління завданнями, яка має різні інтерфейси для користувачів різного рівня доступу. Наприклад, інтерфейс для адміністратора, який може додавати, редагувати та видаляти завдання, інтерфейс для менеджера, який може переглядати та призначати завдання, та інтерфейс для працівника, який може тільки переглядати свої завдання. Переконайтеся, що кожен інтерфейс містить тільки ті методи, які необхідні для виконання відповідних завдань, і не включає в себе методи, які можуть бути використані в іншому контексті.

  3. Розробіть систему для автоматизації управління складом, яка має різні інтерфейси для різних складських працівників. Наприклад, інтерфейс для оператора складу, який може додавати, редагувати та видаляти товари, інтерфейс для менеджера складу, який може переглядати та керувати запасами товарів, та інтерфейс для збирача товарів, який може тільки переглядати та відзначати, що товари були зібрані. Переконайтеся, що кожен інтерфейс містить тільки ті методи, які необхідні для виконання відповідних завдань, і не включає в себе методи, які можуть бути використані в іншому контексті.

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages