@oop_ru

Страница 257 из 785
math
25.06.2017
21:09:45
короче

вчера где-то прочел

что наследование говно

f4rt~
25.06.2017
21:10:14
предпочитайте композицию, ога

Google
math
25.06.2017
21:10:24
вот-вот!

умаляет инкапсуляцию видите ли

Like
25.06.2017
21:10:43
Я ваще без наследования

Плевать

F01134H
25.06.2017
21:10:53
пишите процедурный код

math
25.06.2017
21:10:53
просто

Like
25.06.2017
21:10:58
F01134H
25.06.2017
21:10:59
это серебряная пуля

math
25.06.2017
21:11:00
я несовсем понимаю

наследование и композиция они ж как бы не заменяют друг друга

Sergey
25.06.2017
21:11:27
с наследованием есть такая проблема - его оооочень легко неправильно заюзать

f4rt~
25.06.2017
21:11:34
я несовсем понимаю
все просто, на дворе 2017 год, а люди так и не научились использовать наследование

math
25.06.2017
21:11:39
или я чего-то не понимаю в этой жизни?

Google
f4rt~
25.06.2017
21:11:42
мы вечно переопределяем что то у родителя и тд

math
25.06.2017
21:12:09
был пример

про собак вроде

в супере указываешь лай

но могут быть собаки которые не издают этот звук ?

f4rt~
25.06.2017
21:12:48
Скиньте кто то пример про квадрат ;D

math
25.06.2017
21:12:48
дые

дык

Sergey
25.06.2017
21:12:55
на это можно и с интерфейсами напороться

F01134H
25.06.2017
21:13:11
Sergey
25.06.2017
21:13:13
давай разберемся, вот есть у тебя наследование. Как оно работает?

math
25.06.2017
21:13:29
а чем тут композиция заменяет наследование?

ну со своими плюсами очевидно

f4rt~
25.06.2017
21:13:31
только не снова
повторение мать учения

Sergey
25.06.2017
21:13:40
f4rt~
25.06.2017
21:13:46
а чем тут композиция заменяет наследование?
давай конкретный пример, что бы тебе понятней было

Sergey
25.06.2017
21:13:58
Есть у тебя тип базовый и подтип.

math
25.06.2017
21:13:58
я тебе привел пример

Sergey
25.06.2017
21:14:17
я тебе привел пример
этот пример совершенно не о том о чем ты вещаешь

Google
F01134H
25.06.2017
21:14:22
lsp - допустим есть тип Птица и есть подтипы: орёл, цапля, воробей. Все птицы умеют летать и во всех местах программы вместо птицы можно будет подставить три эти реализации и всё будет работать. Substitutability is a principle in object-oriented programming stating that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e. an object of type T may be substituted with any object of a subtype S) without altering any of the desirable properties of T (correctness, task performed, etc.). More formally, the Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, Но есть ещё пингвин, который летать не умеет но он ЯВЛЯЕТСЯ птицей, добавляем пингвина в нашу программу и опять говорим всем птицам лететь, все выполняют команду, пингвин бросает UnsupportedOperationException. Или пингвин должен летать, т.к. он ЯВЛЯЕТСЯ птицей или он не должен быть птицей. Пингвин это нарушение lsp, пример из реального мира: java collection framework.

Admin
ERROR: S client not available

math
25.06.2017
21:15:06
этот пример совершенно не о том о чем ты вещаешь
можешь не отвечать на мои сообщения больше

lsp - допустим есть тип Птица и есть подтипы: орёл, цапля, воробей. Все птицы умеют летать и во всех местах программы вместо птицы можно будет подставить три эти реализации и всё будет работать. Substitutability is a principle in object-oriented programming stating that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e. an object of type T may be substituted with any object of a subtype S) without altering any of the desirable properties of T (correctness, task performed, etc.). More formally, the Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, Но есть ещё пингвин, который летать не умеет но он ЯВЛЯЕТСЯ птицей, добавляем пингвина в нашу программу и опять говорим всем птицам лететь, все выполняют команду, пингвин бросает UnsupportedOperationException. Или пингвин должен летать, т.к. он ЯВЛЯЕТСЯ птицей или он не должен быть птицей. Пингвин это нарушение lsp, пример из реального мира: java collection framework.
меня интересует то каким образом композиция заменяет собой наследование, а не то чем плохо наследование

Sergey
25.06.2017
21:16:21
меня интересует то каким образом композиция заменяет собой наследование, а не то чем плохо наследование
подтипы плодить можем? Подменять реализацию базовых типов можем? вот и выходит что заменяет наследование

math
25.06.2017
21:16:27
никаким
ну вот и все. спасибо

Aleh
25.06.2017
21:17:15
но могут быть собаки которые не издают этот звук ?
Любая собака может стать молчащей?

F01134H
25.06.2017
21:17:34
подтипы плодить можем? Подменять реализацию базовых типов можем? вот и выходит что заменяет наследование
имхо, композиция просто запрещает в некоторых моментах косячить так, как можно было бы в наследовании

f4rt~
25.06.2017
21:17:53
а еще наследование это сильная связь ;c

da horsie
25.06.2017
21:18:14
меня интересует то каким образом композиция заменяет собой наследование, а не то чем плохо наследование
Композиция заменяет наследование, которое для code reuse. Но то, которое для иерархий - не заменяет.

F01134H
25.06.2017
21:18:36
а еще наследование это сильная связь ;c
да ну хз... Адаптеры, интерфейсы, вот это все...

Sergey
25.06.2017
21:19:02
da horsie
25.06.2017
21:21:18
Еще с наследованием легко напороться, если наследовать бизнес-сущность от инструментального объекта. Т.е. когда иерархия наследования прорастает сквозь слои логики.

da horsie
25.06.2017
21:22:56
это ты так тонко сказал "active record это не очень то славно?"
Ну и это тоже, но я имел в виду статью, которую мы тут обсуждали несколько месяцев назад.

https://www.thoughtworks.com/insights/blog/composition-vs-inheritance-how-choose

Sergey
25.06.2017
21:23:23
про extends is evli?

Страница 257 из 785