Difference between revisions of "Step 6 (S-10019)"

From Stepik Wiki
Jump to: navigation, search
(Create page for step id=10019)
 
 
Line 1: Line 1:
 
Step on Stepik: https://stepik.org/lesson/548/step/6
 
Step on Stepik: https://stepik.org/lesson/548/step/6
  
<img width="50%" src="https://ucarecdn.com/e458b1dd-feae-4428-85d6-1d1fd82bda72/">
+
[[File:Step_6_(S-10019)_1.png|border|800px]]
  
 
[00:00 - 00:17] как уже было сказано выделения публичном интерфейсе позволяет абстрагироваться от конкретной реализации данного pos дать познания как это можно использовать например предположим что в классе целочисленного массива мы решили оптимизировать то место которое занимают постройки
 
[00:00 - 00:17] как уже было сказано выделения публичном интерфейсе позволяет абстрагироваться от конкретной реализации данного pos дать познания как это можно использовать например предположим что в классе целочисленного массива мы решили оптимизировать то место которое занимают постройки
Line 12: Line 12:
  
  
<img width="50%" src="https://ucarecdn.com/9030ac0f-34bf-470d-a18f-f4420a246d2a/">
+
[[File:Step_6_(S-10019)_2.png|border|800px]]
  
 
[00:55 - 01:14] давайте посмотрим как это сделать мы оставили только 1 поле непосредственно показательно при создании объектов конструктор мы будем выделять на 1 элемент больше то есть раньше мы выделяли
 
[00:55 - 01:14] давайте посмотрим как это сделать мы оставили только 1 поле непосредственно показательно при создании объектов конструктор мы будем выделять на 1 элемент больше то есть раньше мы выделяли

Latest revision as of 12:31, 7 August 2017

Step on Stepik: https://stepik.org/lesson/548/step/6

Step 6 (S-10019) 1.png

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


[00:17 - 00:36] изначально в данном классе было 2 поля 1 размер массива 2 указатель на самого себя так как сам по себе является следственным то можно применить следующий всем оптимизации давайте хранить размер массива в самом массиве


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


Step 6 (S-10019) 2.png

[00:55 - 01:14] давайте посмотрим как это сделать мы оставили только 1 поле непосредственно показательно при создании объектов конструктор мы будем выделять на 1 элемент больше то есть раньше мы выделяли


[01:14 - 01:29] size редактировать + 1 и в теле конструктора мы будем присваивать нулевому элементу массива непосредственно размер массива которые нам передали в конструкторе


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


[01:48 - 02:03] ссылку на элемент с номером и мы в действительности по возвращать ссылку на элемент с номером и + 1 потому что 1 чекин вечном равно на странице размер но и метод сайте тоже изменится


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


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