Лабораторна робота №1
Тема: Принципи програмування (DRY, KISS, SOLID, YAGNI тощо)
Опис проекту
Цей проект реалізує систему обліку зоопарку мовою C#. Він містить такі класи:
Animal – описує тварину (ім'я, вид, вік).
Enclosure – описує вольєр та список тварин у ньому.
Employee – працівники зоопарку.
Zoo – керує вольєрами та працівниками.
Програма демонструє принципи об'єктно-орієнтованого програмування та основні принципи розробки.
Використані принципи програмування
- DRY (Don't Repeat Yourself)
Код добре структурований і розділений на класи, що запобігає дублюванню коду.
Методи ToString() дозволяють уникнути дублювання логіки виводу.
- KISS (Keep It Simple, Stupid)
Логіка коду проста та зрозуміла.
Використані базові об'єкти та методи без зайвої складності.
- SOLID принципи
S (Single Responsibility Principle) – кожен клас має лише одну відповідальність: Animal зберігає дані про тварин, Enclosure керує вольєрами, Zoo управляє всією системою.
O (Open/Closed Principle) – легко додати нові типи тварин або функції без зміни існуючого коду.
L (Liskov Substitution Principle) – всі об'єкти можна замінити підкласами без порушення роботи системи.
I (Interface Segregation Principle) – розділення логіки на окремі класи.
D (Dependency Inversion Principle) – класи працюють з об'єктами через чітко визначені інтерфейси.
- YAGNI (You Ain't Gonna Need It)
Реалізовано лише необхідний функціонал без зайвого ускладнення.
- Composition Over Inheritance
Використано композицію (Zoo містить Enclosure та Employee), а не наслідування.
- Program to Interfaces, not Implementations
Можна легко додати інші класи (Bird, Reptile) без зміни основного коду.
- Fail Fast
Конструктори класів гарантують правильну ініціалізацію.
UML-діаграма
Діаграма класів створена у diagrams.net і збережена у цьому репозиторії (uml_diagram.png).
Автор
Студент групи ІПЗк-24-1, Тімков Іван