Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторна робота №1

Тема: Принципи програмування (DRY, KISS, SOLID, YAGNI тощо)

Опис проекту

Цей проект реалізує систему обліку зоопарку мовою C#. Він містить такі класи:

Animal – описує тварину (ім'я, вид, вік).

Enclosure – описує вольєр та список тварин у ньому.

Employee – працівники зоопарку.

Zoo – керує вольєрами та працівниками.

Програма демонструє принципи об'єктно-орієнтованого програмування та основні принципи розробки.

Використані принципи програмування

  1. DRY (Don't Repeat Yourself)

Код добре структурований і розділений на класи, що запобігає дублюванню коду.

Методи ToString() дозволяють уникнути дублювання логіки виводу.

  1. KISS (Keep It Simple, Stupid)

Логіка коду проста та зрозуміла.

Використані базові об'єкти та методи без зайвої складності.

  1. SOLID принципи

S (Single Responsibility Principle) – кожен клас має лише одну відповідальність: Animal зберігає дані про тварин, Enclosure керує вольєрами, Zoo управляє всією системою.

O (Open/Closed Principle) – легко додати нові типи тварин або функції без зміни існуючого коду.

L (Liskov Substitution Principle) – всі об'єкти можна замінити підкласами без порушення роботи системи.

I (Interface Segregation Principle) – розділення логіки на окремі класи.

D (Dependency Inversion Principle) – класи працюють з об'єктами через чітко визначені інтерфейси.

  1. YAGNI (You Ain't Gonna Need It)

Реалізовано лише необхідний функціонал без зайвого ускладнення.

  1. Composition Over Inheritance

Використано композицію (Zoo містить Enclosure та Employee), а не наслідування.

  1. Program to Interfaces, not Implementations

Можна легко додати інші класи (Bird, Reptile) без зміни основного коду.

  1. Fail Fast

Конструктори класів гарантують правильну ініціалізацію.

UML-діаграма

Діаграма класів створена у diagrams.net і збережена у цьому репозиторії (uml_diagram.png).

Автор

Студент групи ІПЗк-24-1, Тімков Іван

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages