PatternsCSharpProgramming/Patterns/4_Принцип разделения интерфейсов/Program.cs
Dvurechensky 3a28caed27 1.0
Main
2024-10-05 09:15:54 +03:00

48 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Глава 20: Принцип разделения интерфейсов (SOLID SRP)
*
* Автор: Роберт Мартин (Дядя Боб)
*
* Сам принцип:
* - клиенты не должны зависеть от методов которые они не используют
*
* или
*
* - если какая-то сущность заявляет о своем функционале, то он должен работать
*
* или
*
* - от реализации исбыточных интерфейсов следует отказаться в пользу специфичных
*
* Принципы:
* 1. Single responsibility - принцип единственной ответственности
* 2. Open-closed - принцип открытости/закрытости
* 3. Liskov substitution - принцип подстановки Барбары Лисков (самый сложный)
* 4. Interface Segregation - принцип разделения интерфейса
* 5. Dependency inversion - принцип инверсии зависисмостей
*/
public abstract class Car
{
public string Model { get; set; }
public string Brand { get; set; }
public Car(string model, string name)
{
Model = model;
Brand = name;
}
}
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!!! вместо огромного набора функций в одном интерфейсе !!!
//!!! в случае если при наследовании от него множество функций не реализуется !!!
//!!! нужно перейти в сторону множественного наследования интерфейсов под каждую из функций !!!
//!!! или под каждый набор функций !!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
public class Program
{
public static void Main(string[] argv)
{
}
}