Skip to content

Commit a9b13d2

Browse files
committed
Merge pull request iliakan#207 from bogem/poli
Fix "полиморфность"
2 parents 60275fb + d400af2 commit a9b13d2

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

  • 1-js/6-objects-more/5-static-properties-and-methods

1-js/6-objects-more/5-static-properties-and-methods/article.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
[cut]
66

7-
## Статические свойства
7+
## Статические свойства
88

99
В коде ниже используются статические свойства `Article.count` и `Article.DEFAULT_FORMAT`:
1010

@@ -17,7 +17,7 @@ Article.count = 0; // статическое свойство-переменна
1717
Article.DEFAULT_FORMAT = "html"; // статическое свойство-константа
1818
```
1919

20-
Они хранят данные, специфичные не для одного объекта, а для всех статей целиком.
20+
Они хранят данные, специфичные не для одного объекта, а для всех статей целиком.
2121

2222
Как правило, это чаще константы, такие как формат "по умолчанию" `Article.DEFAULT_FORMAT`.
2323

@@ -56,7 +56,7 @@ Article.showCount(); // (2)
5656

5757
Ещё один хороший способ применения -- сравнение объектов.
5858

59-
Например, у нас есть объект `Journal` для журналов. Журналы можно сравнивать -- по толщине, по весу, по другим параметрам.
59+
Например, у нас есть объект `Journal` для журналов. Журналы можно сравнивать -- по толщине, по весу, по другим параметрам.
6060

6161
Объявим "стандартную" функцию сравнения, которая будет сравнивать по дате издания. Эта функция сравнения, естественно, не привязана к конкретному журналу, но относится к журналам вообще.
6262

@@ -191,7 +191,7 @@ var knownUser = new User({
191191
knownUser.sayHi(); // Вася
192192
```
193193

194-
Подход с использованием фабричных методов был бы другим. Вместо разбора параметров в конструкторе -- делаем два метода: `User.createAnonymous` и `User.createFromData`.
194+
Подход с использованием фабричных методов был бы другим. Вместо разбора параметров в конструкторе -- делаем два метода: `User.createAnonymous` и `User.createFromData`.
195195

196196
Код:
197197

@@ -238,7 +238,7 @@ knownUser.sayHi(); // Вася
238238
+Удобная расширяемость. Например, нужно добавить создание администратора, без аргументов. Фабричный метод сделать легко: `User.createAdmin = function() { ... }`. А для полиморфного конструктора вызов без аргумента создаст анонима, так что нужно добавить параметр -- "тип посетителя" и усложнить этим код.
239239
[/compare]
240240

241-
**Поэтому полиморфные конструкторы лучше использовать там, где нужна именно полиморфность**, т.е. когда непонятно, какого типа аргумент передадут, и хочется в одном конструкторе охватить все варианты.
241+
**Поэтому полиморфные конструкторы лучше использовать там, где нужен именно полиморфизм**, т.е. когда непонятно, какого типа аргумент передадут, и хочется в одном конструкторе охватить все варианты.
242242

243243
А в остальных случаях отличная альтернатива -- фабричные методы.
244244

0 commit comments

Comments
 (0)