48 lines
2.2 KiB
C#
48 lines
2.2 KiB
C#
/*
|
||
* Глава 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)
|
||
{
|
||
|
||
}
|
||
} |