1 つの ES6 クラスから 2 つの ES6 クラスを拡張するつもりであり、拡張された 2 つのクラスは Angular のコントローラーとして使用されます。
例えば、
class Base {
constructor(name,age){
this.name=name;
this.age=age;
}
getDetails(){
return this.name + ' ' + this.age;
}
}
class Controller1 extends Base{
constructor(name,age){
super(name,age);
this.getDetails = this.getDetails.bind(this);
}
getDetails(){
return super.getDetails();
}
}
class Controller2 extends Base{
constructor(name,age){
super(name,age);
this.getDetails = this.getDetails.bind(this);
}
getDetails(){
return super.getDetails();
}
}
上記の例では、controller1 と controller2 が角度コントローラーとして登録されています。これはうまく機能しますが、私が気づいたことは、各コントローラーがアクセスされるたびに、Base クラスが 2 回呼び出されることです。いくつかの質問:
このデザインパターンは正しいですか?はいの場合、基本コンストラクターが2回呼び出されるのを防ぐ方法は? 私が達成したいのは、両方のコントローラー間でいくつかのメソッドを共有することです。上記が有効なシナリオでない場合、これを達成するための理想的なアプローチは何ですか?