0

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回呼び出されるのを防ぐ方法は? 私が達成したいのは、両方のコントローラー間でいくつかのメソッドを共有することです。上記が有効なシナリオでない場合、これを達成するための理想的なアプローチは何ですか?

4

0 に答える 0