You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/09-classes/04-private-protected-properties-methods/article.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
4
4
Один з найважливіших принципів об’єктно-орієнтованого програмування -- розділення внутрішнього інтерфейсу від зовнішнього.
5
5
6
-
Це обов’язкова практика у розробці вcього, що складніше, ніж застосунок "hello world".
6
+
Це обов’язкова практика у розробці всього, що складніше, ніж застосунок "hello world".
7
7
8
8
Щоб зрозуміти це, відійдімо від розробки та поглянемо на реальний світ.
9
9
@@ -23,7 +23,7 @@
23
23
24
24
Кавові машини досить надійні, чи не так? Ми можемо використовувати її один рік, і тільки якщо щось піде не так -- віднести її в ремонт.
25
25
26
-
Секрет надійності та простоти кавоварки -- всі деталі добре налаштовані і*приховані* всередині.
26
+
Секрет надійності та простоти кавоварки -- всі деталі добре налаштовані та*приховані* всередині.
27
27
28
28
Якщо ми видалимо захисне покриття з кавоварки, то використовувати її буде набагато складніше (де натискати?), і небезпечніше (вона може вдарити електричним струмом).
29
29
@@ -44,7 +44,7 @@
44
44
45
45
Але ззовні кавоварка закрита захисним покриттям так, що ніхто не може добратися до її нутрощів. Деталі приховані та недоступні. Ми можемо використовувати її функціонал за допомогою зовнішнього інтерфейсу.
46
46
47
-
Отже, все, що нам потрібно для використання об’єкту, -- це знати його зовнішній інтерфейс. Ми можемо повністю не знати, як він працює всередині, і це чудово.
47
+
Отже, все, що нам потрібно для використання об’єкта, -- це знати його зовнішній інтерфейс. Ми можемо повністю не знати, як він працює всередині, і це чудово.
48
48
49
49
Це було загальне введення.
50
50
@@ -127,7 +127,7 @@ coffeeMachine.waterAmount = -10; // _waterAmount буде 0, а не -10
127
127
128
128
Для кавоварки це саме так: потужність ніколи не змінюється.
129
129
130
-
Щоб це зробити, потрібно зробити лише гетер, без сетеру:
130
+
Щоб це зробити, потрібно зробити лише гетер, без сетера:
131
131
132
132
```js run
133
133
classCoffeeMachine {
@@ -190,7 +190,7 @@ new CoffeeMachine().setWaterAmount(100);
190
190
191
191
В JavaScript є закінчена пропозиція, майже у стандарті, що забезпечує підтримку приватних властивостей та методів на рівні мови.
192
192
193
-
Приватні властивості і методи повинні починатися з `#`. Вони доступні лише з класу.
193
+
Приватні властивості та методи повинні починатися з `#`. Вони доступні лише з класу.
194
194
195
195
Наприклад, ось приватна властивість `#waterLimit` та приватний метод, що перевіряє кількість води `#fixWaterAmount`:
На відміну від захищених, приватні поля забезпечуються самою мовою. Це добре.
253
253
254
-
Але якщо ми наслідуємося від `CoffeeMachine`, то ми не матимемо прямого доступу до `#waterAmount`. Ми повинні будемо покладатися на `wateramount` гетер/сетер:
254
+
Але якщо ми наслідуємося від `CoffeeMachine`, то ми не матимемо прямого доступу до `#waterAmount`. Ми повинні будемо покладатися на `waterAmount` гетер/сетер:
255
255
256
256
```js
257
257
classMegaCoffeeMachineextendsCoffeeMachine {
@@ -285,7 +285,7 @@ class User {
285
285
286
286
## Підсумки
287
287
288
-
З точки зору ООП, відокремлення внутрішнього інтерфейсу від зовнішнього називається [інкапсуляція](https://uk.wikipedia.org/wiki/Інкапсуляція_(програмування)).
288
+
З точки зору ООП, відокремлення внутрішнього інтерфейсу від зовнішнього називається [інкапсуляцією](https://uk.wikipedia.org/wiki/Інкапсуляція_(програмування)).
0 commit comments