Size: a a a

2021 May 26

St

Stranger in the Q in GameDev for Web
источник

St

Stranger in the Q in GameDev for Web
как-то так
источник

К

Константин in GameDev for Web
ну это utility method
источник

К

Константин in GameDev for Web
у нас такие в статике
источник

St

Stranger in the Q in GameDev for Web
да, но чтобы разгрузить класс
источник

St

Stranger in the Q in GameDev for Web
т.е. это тело метода класса, даже ссылки пришлось сюда прокинуть на сервисы
источник

К

Константин in GameDev for Web
ну и в итоге ты делаешь так:

class lalal {
  method() {
      return utilityMethod(this)
  }
}
источник

St

Stranger in the Q in GameDev for Web
просто чтобы не скроллить простыни
источник

St

Stranger in the Q in GameDev for Web
ну почти, может там пару ифов
источник

St

Stranger in the Q in GameDev for Web
основное ветвление
источник

St

Stranger in the Q in GameDev for Web
источник

К

Константин in GameDev for Web
это несколько становится плохо, когда есть наследование
и в итоге у нас ща:
BaseElements
TriangleElements
LineElements
TriangleElementsUtils
LineElementsUtils
источник

К

Константин in GameDev for Web
и контракт на утилиты не наследуется по типу элемента
источник

К

Константин in GameDev for Web
и любое изменение в BaseElements по API проходит вслепую для утилит, которые вызываются из наследуемых классов.
Это потому что в TS нельзя описывать статический интерфейс
источник

St

Stranger in the Q in GameDev for Web
а что мешает сделать базовый интерфейс для утилит?
источник

St

Stranger in the Q in GameDev for Web
или там все типа разное совсем?
источник

К

Константин in GameDev for Web
тогда надо делать инстанс
источник

St

Stranger in the Q in GameDev for Web
не вижу проблем
источник

К

Константин in GameDev for Web
утилиты на то и утилиты, что они статические.
источник

St

Stranger in the Q in GameDev for Web
вот это максимально похер
источник