Type Instantiation
Скажімо, у вас є щось, що має загальний параметр, наприклад. клас Foo
:
Ви хочете створити для нього спеціалізовану версію для певного типу. Шаблон полягає в тому, щоб скопіювати елемент у нову змінну та надати йому анотацію типу із заміною узагальнених типів на конкретні типи. наприклад якщо вам потрібен клас Foo<number>
:
У посиланні 1
ви говорите, що FooNumber
— це те саме, що Foo
, але розглядаєте його як щось, що при виклику оператора new
дає екземпляр Foo<Number>
.
Inheritance
Шаблон твердження Type є небезпечним, оскільки він довіряє вам, що ви робите правильні речі. Загальним шаблоном в інших мовах для класів є просто використання спадкування:
Одне застереження: якщо ви використовуєте декоратори для базового класу, успадкований клас може не мати такої самої поведінки, як базовий клас (він більше не обгортається декоратором).
Звичайно, якщо ви не спеціалізовали класи, вам все одно доведеться придумати шаблон примусу/твердження, який працює, тому ми спочатку показали загальний шаблон твердження, наприклад:
Натхненний цим питанням stackoverflow
Last updated