Size: a a a

2021 April 03

С(

Сергей (F L ) in .NET Talks🎄
Anton Antonov
В фиолетовом чате зашла речь о том, что наследование это антипаттерн. И вот стало интересно, а какие альтернативы полиморфизму вообще существуют? Или полиморфизм существует не только в рамках наследования (в том числе и реализации интерфейсов)?
Наследование увеличивает связанность, часто его можно заменить на агрегацию, что связанность не увеличивает. Почти логично
источник

X

XÆA-XII in .NET Talks🎄
Сергей (F L )
Наследование увеличивает связанность, часто его можно заменить на агрегацию, что связанность не увеличивает. Почти логично
Агрегация - это реализация интерфейсов?
источник

AA

Anton Antonov in .NET Talks🎄
Сергей (F L )
Наследование увеличивает связанность, часто его можно заменить на агрегацию, что связанность не увеличивает. Почти логично
Агрегация разве реализует полиморфизм? Агрегация это когда у тебя например класс содержит инстанс того класса, с которым он в отношениях?
источник

С(

Сергей (F L ) in .NET Talks🎄
Anton Antonov
Агрегация разве реализует полиморфизм? Агрегация это когда у тебя например класс содержит инстанс того класса, с которым он в отношениях?
Да, с агрегацией всегда идёт апкаст, где а качестве элемента включения используется общий класс/интерфейс, который просто задаёт общее поведение, которое мы привели от частной реализации
источник

С(

Сергей (F L ) in .NET Talks🎄
Ненавижу т9
источник

AA

Anton Antonov in .NET Talks🎄
Ну например у тебя есть разные машины, которые агрегируют общий класс двигателя. Если ли способ собрать все эти машины например в одну коллекцию? Я как понимаю, тебе нужен будет общий наследник, либо интерфейс.
источник

MN

Mr. N in .NET Talks🎄
Anton Antonov
Ну например у тебя есть разные машины, которые агрегируют общий класс двигателя. Если ли способ собрать все эти машины например в одну коллекцию? Я как понимаю, тебе нужен будет общий наследник, либо интерфейс.
каст к object 😁
источник

С(

Сергей (F L ) in .NET Talks🎄
Anton Antonov
Ну например у тебя есть разные машины, которые агрегируют общий класс двигателя. Если ли способ собрать все эти машины например в одну коллекцию? Я как понимаю, тебе нужен будет общий наследник, либо интерфейс.
Не совсем понятно зачем нам коллекция
источник

AA

Anton Antonov in .NET Talks🎄
Сергей (F L )
Не совсем понятно зачем нам коллекция
Ну например ты хочешь хранить все эти объекты (объекты разных классов) и переодический хочет чекать состояния их двигателя.
источник

С(

Сергей (F L ) in .NET Talks🎄
Anton Antonov
Ну например ты хочешь хранить все эти объекты (объекты разных классов) и переодический хочет чекать состояния их двигателя.
Нарушение инкапсуляции очевидное.
источник

AA

Anton Antonov in .NET Talks🎄
Если у них будет общий интерфейс или они будут унаследованы от общего класса, то все будет норм
источник

С(

Сергей (F L ) in .NET Talks🎄
Anton Antonov
Если у них будет общий интерфейс или они будут унаследованы от общего класса, то все будет норм
Ну да апкаст, мы может так делать.
источник

NS

Nikolay Shamshurin in .NET Talks🎄
Сергей (F L )
Нарушение инкапсуляции очевидное.
Почему нарушение инкапсуляции? Мы когда создаём класс, предоставляем тот интерфейс взаимодействия который необходим. Просто наследование связывает руки, в том случае, когда у одного из наследников этот интерфейс хотелось бы изменить, да солид не даёт.
источник

С(

Сергей (F L ) in .NET Talks🎄
Nikolay Shamshurin
Почему нарушение инкапсуляции? Мы когда создаём класс, предоставляем тот интерфейс взаимодействия который необходим. Просто наследование связывает руки, в том случае, когда у одного из наследников этот интерфейс хотелось бы изменить, да солид не даёт.
Если мы храним ссылки на чужой двигатель автомобиля который каруселит по дорогам, это нарушение инкапсуляции, хотя с двигателем плохой пример так как это композиция а не агрегация. А вот если у нас будет удаленный доступ к прибору который считывает данные двигателя, то все пучком.
источник

С(

Сергей (F L ) in .NET Talks🎄
Мы можем испортить двигатель удаленно. И сломать машину
источник

β🎀

βλαδιμιρ 🎀 🌎🔫... in .NET Talks🎄
Anton Antonov
В фиолетовом чате зашла речь о том, что наследование это антипаттерн. И вот стало интересно, а какие альтернативы полиморфизму вообще существуют? Или полиморфизм существует не только в рамках наследования (в том числе и реализации интерфейсов)?
Если у тебя в коде есть полиморфная работа с абстракциями, то наследование это ок
источник

NS

Nikolay Shamshurin in .NET Talks🎄
βλαδιμιρ 🎀 🌎🔫
Если у тебя в коде есть полиморфная работа с абстракциями, то наследование это ок
+
источник

β🎀

βλαδιμιρ 🎀 🌎🔫... in .NET Talks🎄
Но чаще всего наследованием просто выносят общее поведение в базовый класс
источник

β🎀

βλαδιμιρ 🎀 🌎🔫... in .NET Talks🎄
Типа БАЗОВЫЙ КОНТРОЛЛЕР
источник

AA

Anton Antonov in .NET Talks🎄
Сергей (F L )
Если мы храним ссылки на чужой двигатель автомобиля который каруселит по дорогам, это нарушение инкапсуляции, хотя с двигателем плохой пример так как это композиция а не агрегация. А вот если у нас будет удаленный доступ к прибору который считывает данные двигателя, то все пучком.
Соглы. Пример с двигателем это не агрегация. Тупанул
источник