Difference between revisions of "Step 8 (S-10689)"
(Create page for step id=10689) |
|||
Line 1: | Line 1: | ||
Step on Stepik: https://stepik.org/lesson/556/step/8 | Step on Stepik: https://stepik.org/lesson/556/step/8 | ||
− | + | [[File:Step_8_(S-10689)_1.png|border|800px]] | |
[00:00 - 00:18] для того чтобы избежать подобного рода ошибок можно применять следующие критерии критерии называется принцип подстановки барбарис и по английски лизка посетителям принципов иногда сокращает как этот критерий гласит что если есть функции работающие с базовым классом | [00:00 - 00:18] для того чтобы избежать подобного рода ошибок можно применять следующие критерии критерии называется принцип подстановки барбарис и по английски лизка посетителям принципов иногда сокращает как этот критерий гласит что если есть функции работающие с базовым классом | ||
− | + | [[File:Step_8_(S-10689)_2.png|border|800px]] | |
[00:18 - 00:33] то такие функции должны иметь возможность работать с объектами то есть по классам не знаю об этом с если есть некоторый код написан в теме базовый класс и мы вместо базового класса | [00:18 - 00:33] то такие функции должны иметь возможность работать с объектами то есть по классам не знаю об этом с если есть некоторый код написан в теме базовый класс и мы вместо базового класса | ||
− | + | [[File:Step_8_(S-10689)_3.png|border|800px]] | |
[00:33 - 00:48] подставим туда объекты природно вопроса то данный код должен сохранить работоспособность и корректно этот принцип является важнейшим критерием при принятии решения о наследовании то есть если вы решаете | [00:33 - 00:48] подставим туда объекты природно вопроса то данный код должен сохранить работоспособность и корректно этот принцип является важнейшим критерием при принятии решения о наследовании то есть если вы решаете | ||
Line 25: | Line 25: | ||
− | + | [[File:Step_8_(S-10689)_4.png|border|800px]] | |
[01:36 - 01:53] данного класса определенного поведения то девкам подставить туда объекты производного класса их поведение не будет противоречить базовым классом то он будет работать коллег говорят более подробно можно сказать что | [01:36 - 01:53] данного класса определенного поведения то девкам подставить туда объекты производного класса их поведение не будет противоречить базовым классом то он будет работать коллег говорят более подробно можно сказать что | ||
− | + | [[File:Step_8_(S-10689)_5.png|border|800px]] | |
− | + | [[File:Step_8_(S-10689)_6.png|border|800px]] | |
[01:53 - 02:13] класс не должен требовать от вызывающего кода больше чем базовый класс то есть он не должен напрягать какие то дополнительные ограничения на вызывающий код и одновременно с этим он не должен предоставлять вызывающему коду меньше чем базовый класс | [01:53 - 02:13] класс не должен требовать от вызывающего кода больше чем базовый класс то есть он не должен напрягать какие то дополнительные ограничения на вызывающий код и одновременно с этим он не должен предоставлять вызывающему коду меньше чем базовый класс | ||
− | + | [[File:Step_8_(S-10689)_7.png|border|800px]] | |
− | + | [[File:Step_8_(S-10689)_8.png|border|800px]] | |
[02:13 - 02:28] то есть если базовый класс предоставляет какие то данные какую то функциональность то производные классы должны предоставлять эти же данные эту функциональность и не могут запретить например если у вас заказ был какой то | [02:13 - 02:28] то есть если базовый класс предоставляет какие то данные какую то функциональность то производные классы должны предоставлять эти же данные эту функциональность и не могут запретить например если у вас заказ был какой то | ||
Line 50: | Line 50: | ||
− | + | [[File:Step_8_(S-10689)_9.png|border|800px]] | |
[[Category:Steps]] | [[Category:Steps]] | ||
[[Category:Объектно-ориентированное программирование (L-556)| 8]] | [[Category:Объектно-ориентированное программирование (L-556)| 8]] |
Latest revision as of 12:45, 7 August 2017
Step on Stepik: https://stepik.org/lesson/556/step/8
[00:00 - 00:18] для того чтобы избежать подобного рода ошибок можно применять следующие критерии критерии называется принцип подстановки барбарис и по английски лизка посетителям принципов иногда сокращает как этот критерий гласит что если есть функции работающие с базовым классом
[00:18 - 00:33] то такие функции должны иметь возможность работать с объектами то есть по классам не знаю об этом с если есть некоторый код написан в теме базовый класс и мы вместо базового класса
[00:33 - 00:48] подставим туда объекты природно вопроса то данный код должен сохранить работоспособность и корректно этот принцип является важнейшим критерием при принятии решения о наследовании то есть если вы решаете
[00:48 - 01:04] можно ли унаследовать 1 класса другого то 1 делом надо применить этот принцип посмотреть корректно ли наследовании в данном случае аналогично если вы решаете применять наследование агрегацию 1 делом стоит промерить а корректно ли наследование данном случае
[01:04 - 01:19] у данного принципа существует множество различных формулировок данная формулировка не является оригинальной регионально автоматизированной а давайте рассмотрим еще пару формулировок для того чтобы этот принцип стал более понятен
[01:19 - 01:36] можно сказать в терминах по видео чтоб поведения на следующих классах не должно противоречить поведения задан базовым классом то есть это означает что если есть некоторый код который ожидает от объектов
[01:36 - 01:53] данного класса определенного поведения то девкам подставить туда объекты производного класса их поведение не будет противоречить базовым классом то он будет работать коллег говорят более подробно можно сказать что
[01:53 - 02:13] класс не должен требовать от вызывающего кода больше чем базовый класс то есть он не должен напрягать какие то дополнительные ограничения на вызывающий код и одновременно с этим он не должен предоставлять вызывающему коду меньше чем базовый класс
[02:13 - 02:28] то есть если базовый класс предоставляет какие то данные какую то функциональность то производные классы должны предоставлять эти же данные эту функциональность и не могут запретить например если у вас заказ был какой то
[02:28 - 02:44] метод который можно было вызвать и этом он выдавал какой то разумный ответ нельзя сделать так чтобы в производном классе этот метод не работу или например выдавал себя ошибку это будет нарушение потому что мы таким образом
[02:44 - 02:58] поведения на следующего класса делаем противоречащим поведения задан базу класс ну или в терминах этой формулировке мы предоставляем вызывающему коду меньше чем базовый класс