Type Instantiation
たとえば、ジェネリックパラメータを持つものがあるとします。クラスFoo
です:
特定の型の特殊バージョンを作成したいとします。このパターンは、項目を新しい変数にコピーし、ジェネリックを具体的な型に置き換えた型アノテーションを与えることです。例えば。 Foo<number>
クラスが必要な場合です:
ref 1
では、FooNumber
はFoo
と同じですが、new
演算子で呼び出されたときに Foo<Number>
のインスタンスを与えるものとして扱います。
継承
型アサーションパターンは、あなたが正しいことをする、と信じているという意味では安全ではありません。クラスの他の言語での共通パターンは継承を使うことです:
ここで注意しなければならないのは、デコレータをベースクラスで使用すると、継承されたクラスはベースクラスと同じ動作をしない可能性があることです(それは、もはやデコレータでラップされません)。
もちろん、クラスを特殊化していない場合でも、型強制/アサーションパターンがワークする方法を考える必要があります。なので、まず一般的なアサーションパターンを示します。
このstackoverflowの質問にインスパイアされました
最終更新