|
|
|
liskov's substitution principle
|
|||
|---|---|---|---|
|
#18+
Привет! Разбираюсь с сабжем: http://www.oodesign.com/liskov-s-substitution-principle.html И не очень понимаю фразу: авторLikov's Substitution Principle states that if a program module is using a Base class, then the reference to the Base class can be replaced with a Derived class without affecting the functionality of the program module. Как ссылка на базовый класс может быть заменена ссылкой на наследуемый? И ещё, я привык - что наследование - используется для переопределения функционала базового класса, например. Полиморфизм тот же. Или главная проблема в том, что иерархия классов в примере неверная - rectangle - squere? Поясните, пожалуйста. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:12 |
|
||
|
liskov's substitution principle
|
|||
|---|---|---|---|
|
#18+
mr_virtusавторLikov's Substitution Principle states that if a program module is using a Base class, then the reference to the Base class can be replaced with a Derived class without affecting the functionality of the program module. Как ссылка на базовый класс может быть заменена ссылкой на наследуемый? Ссылка на базовый класс заменяется наследуемым классом (а не ссылкой). Переводите внимательно. В любом случае принцип стоит адаптировать к нюансам языка. Чтобы было понятно. Речь об обычном наследовании: Код: java 1. mr_virtusИ ещё, я привык - что наследование - используется для переопределения функционала базового класса, например. Полиморфизм тот же. Полиморфизм другая тема. В том то и ошибка использование наследования для "переопределение". Лисков утверждает что при наследовании можно только расширять. Наследование заключается в том что Derived "является"(отношение is-a) Base. Но если ты меняешь поведений, то твой Derived ломает контракт Base. Так как он должен им являтся. Но его реализация "не является" Base. mr_virtusИли главная проблема в том, что иерархия классов в примере неверная - rectangle - squere? Главная проблема в том что square пишется через "a". А указанный вопрос не проблема. Правильное отношение rectangle - square зависит только от сценария использование этих классов. В одних сценариях такое наследование приносит пользу. В других - вред. Принцип Лисков говорит о "поведении". В то время как rectangle и square это только "состояние". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:23 |
|
||
|
liskov's substitution principle
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, :) Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:27 |
|
||
|
liskov's substitution principle
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЛисков утверждает Может таки Лискова?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:35 |
|
||
|
liskov's substitution principle
|
|||
|---|---|---|---|
|
#18+
avp.mkBlazkowiczЛисков утверждает Может таки Лискова?) Её фамилия не склоняется на сколько я знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:37 |
|
||
|
liskov's substitution principle
|
|||
|---|---|---|---|
|
#18+
Варвара Лискова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 13:27 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=148&tid=2126117]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
287ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 561ms |

| 0 / 0 |
