2017-05-17 5 views
0

に私が保護されたメソッドfooとfooへのパブリック・アクセスを許可したい子クラスを、持っている基本クラスを、持っています。このメソッドは非常に頻繁に呼び出されるので、不要な関数呼び出しを保存することは素晴らしいことです。これを達成するための「より良い」ソリューションがありますか?私の現在のハック:Aの他のすべてのサブクラスは内部でのみのfooにアクセスするものとしてメイク方法の国民は、サブクラス

abstract class A { 
    protected foo(X:T) {...} 
} 
class B extends A { 
    foo(X:T) {super.foo(X);} 
} 
B.prototype.foo = (<any>A.prototype).foo; 

は、fooは公共作りAでは、オプションではありません。特別な子供Bだけが外からのfooへのアクセスを許可しなければならない。

+1

最も簡単な方法は、ちょうどあなたが行っているとして、スーパーコールを使用し、パフォーマンスに関する仮想マシンの心配をできるようになります。 :) – toskv

+0

サブクラスのメソッド名をオプションに変更していますか? – Saravana

+0

@toskv「これを行う(プロトタイプを変更せずに)パフォーマンスに影響はありません」と言っているのは、この質問に対する正当な答えです。 – Alfi

答えて

1

この場合、追加呼び出しのパフォーマンスへの影響は、無視するか、または仮想マシンに残して最適化するのに十分小さくなければなりません。子クラスでメソッドを公開作る

がより明示的です。

関連する問題