/* * Глава 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) { } }