Difference between revisions of "Step 8 (S-10689)"

From Stepik Wiki
Jump to: navigation, search
(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
  
<img width="50%" src="https://ucarecdn.com/28803ee2-b81b-4b56-8e40-573aad928a8c/">
+
[[File:Step_8_(S-10689)_1.png|border|800px]]
  
 
[00:00 - 00:18] для того чтобы избежать подобного рода ошибок можно применять следующие критерии критерии называется принцип подстановки барбарис и по английски лизка посетителям принципов иногда сокращает как этот критерий гласит что если есть функции работающие с базовым классом
 
[00:00 - 00:18] для того чтобы избежать подобного рода ошибок можно применять следующие критерии критерии называется принцип подстановки барбарис и по английски лизка посетителям принципов иногда сокращает как этот критерий гласит что если есть функции работающие с базовым классом
  
  
<img width="50%" src="https://ucarecdn.com/589e01f9-4381-43c9-bffc-148506449047/">
+
[[File:Step_8_(S-10689)_2.png|border|800px]]
  
 
[00:18 - 00:33] то такие функции должны иметь возможность работать с объектами то есть по классам не знаю об этом с если есть некоторый код написан в теме базовый класс и мы вместо базового класса
 
[00:18 - 00:33] то такие функции должны иметь возможность работать с объектами то есть по классам не знаю об этом с если есть некоторый код написан в теме базовый класс и мы вместо базового класса
  
  
<img width="50%" src="https://ucarecdn.com/4fff41a6-fe77-4296-b71c-9245f0f97572/">
+
[[File:Step_8_(S-10689)_3.png|border|800px]]
  
 
[00:33 - 00:48] подставим туда объекты природно вопроса то данный код должен сохранить работоспособность и корректно этот принцип является важнейшим критерием при принятии решения о наследовании то есть если вы решаете
 
[00:33 - 00:48] подставим туда объекты природно вопроса то данный код должен сохранить работоспособность и корректно этот принцип является важнейшим критерием при принятии решения о наследовании то есть если вы решаете
Line 25: Line 25:
  
  
<img width="50%" src="https://ucarecdn.com/af6a4ce6-d45e-4eb8-9f5b-4a8b9003d645/">
+
[[File:Step_8_(S-10689)_4.png|border|800px]]
  
 
[01:36 - 01:53] данного класса определенного поведения то девкам подставить туда объекты производного класса их поведение не будет противоречить базовым классом то он будет работать коллег говорят более подробно можно сказать что
 
[01:36 - 01:53] данного класса определенного поведения то девкам подставить туда объекты производного класса их поведение не будет противоречить базовым классом то он будет работать коллег говорят более подробно можно сказать что
  
  
<img width="50%" src="https://ucarecdn.com/240782c8-1dec-47dd-9b8b-6cb87b7eb7ef/">
+
[[File:Step_8_(S-10689)_5.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/0b42d7cf-0992-4bbc-b3a2-6b270854c667/">
+
[[File:Step_8_(S-10689)_6.png|border|800px]]
  
 
[01:53 - 02:13] класс не должен требовать от вызывающего кода больше чем базовый класс то есть он не должен напрягать какие то дополнительные ограничения на вызывающий код и одновременно с этим он не должен предоставлять вызывающему коду меньше чем базовый класс
 
[01:53 - 02:13] класс не должен требовать от вызывающего кода больше чем базовый класс то есть он не должен напрягать какие то дополнительные ограничения на вызывающий код и одновременно с этим он не должен предоставлять вызывающему коду меньше чем базовый класс
  
  
<img width="50%" src="https://ucarecdn.com/9aa82aac-5656-4959-81d7-81fe4739bd42/">
+
[[File:Step_8_(S-10689)_7.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/14bab10c-5ad1-41c8-adc7-2d09ff47024e/">
+
[[File:Step_8_(S-10689)_8.png|border|800px]]
  
 
[02:13 - 02:28] то есть если базовый класс предоставляет какие то данные какую то функциональность то производные классы должны предоставлять эти же данные эту функциональность и не могут запретить например если у вас заказ был какой то
 
[02:13 - 02:28] то есть если базовый класс предоставляет какие то данные какую то функциональность то производные классы должны предоставлять эти же данные эту функциональность и не могут запретить например если у вас заказ был какой то
Line 50: Line 50:
  
  
<img width="50%" src="https://ucarecdn.com/68b7230b-55fe-4253-8dcb-0d775f52e5e9/">
+
[[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

Step 8 (S-10689) 1.png

[00:00 - 00:18] для того чтобы избежать подобного рода ошибок можно применять следующие критерии критерии называется принцип подстановки барбарис и по английски лизка посетителям принципов иногда сокращает как этот критерий гласит что если есть функции работающие с базовым классом


Step 8 (S-10689) 2.png

[00:18 - 00:33] то такие функции должны иметь возможность работать с объектами то есть по классам не знаю об этом с если есть некоторый код написан в теме базовый класс и мы вместо базового класса


Step 8 (S-10689) 3.png

[00:33 - 00:48] подставим туда объекты природно вопроса то данный код должен сохранить работоспособность и корректно этот принцип является важнейшим критерием при принятии решения о наследовании то есть если вы решаете


[00:48 - 01:04] можно ли унаследовать 1 класса другого то 1 делом надо применить этот принцип посмотреть корректно ли наследовании в данном случае аналогично если вы решаете применять наследование агрегацию 1 делом стоит промерить а корректно ли наследование данном случае


[01:04 - 01:19] у данного принципа существует множество различных формулировок данная формулировка не является оригинальной регионально автоматизированной а давайте рассмотрим еще пару формулировок для того чтобы этот принцип стал более понятен


[01:19 - 01:36] можно сказать в терминах по видео чтоб поведения на следующих классах не должно противоречить поведения задан базовым классом то есть это означает что если есть некоторый код который ожидает от объектов


Step 8 (S-10689) 4.png

[01:36 - 01:53] данного класса определенного поведения то девкам подставить туда объекты производного класса их поведение не будет противоречить базовым классом то он будет работать коллег говорят более подробно можно сказать что


Step 8 (S-10689) 5.png

Step 8 (S-10689) 6.png

[01:53 - 02:13] класс не должен требовать от вызывающего кода больше чем базовый класс то есть он не должен напрягать какие то дополнительные ограничения на вызывающий код и одновременно с этим он не должен предоставлять вызывающему коду меньше чем базовый класс


Step 8 (S-10689) 7.png

Step 8 (S-10689) 8.png

[02:13 - 02:28] то есть если базовый класс предоставляет какие то данные какую то функциональность то производные классы должны предоставлять эти же данные эту функциональность и не могут запретить например если у вас заказ был какой то


[02:28 - 02:44] метод который можно было вызвать и этом он выдавал какой то разумный ответ нельзя сделать так чтобы в производном классе этот метод не работу или например выдавал себя ошибку это будет нарушение потому что мы таким образом


[02:44 - 02:58] поведения на следующего класса делаем противоречащим поведения задан базу класс ну или в терминах этой формулировке мы предоставляем вызывающему коду меньше чем базовый класс


Step 8 (S-10689) 9.png