スケーラビリティの観点から、具体的なクラスまたはインターフェイスからオブジェクトを作成する方が賢明でしょうか?
たとえば、次の代わりに:
LinkedStack<Integer> list = new LinkedStack<Integer>();
これでなければなりません:
StackInterface<Integer> list = new LinkedStack<Integer>();
スケーラビリティの観点から、具体的なクラスまたはインターフェイスからオブジェクトを作成する方が賢明でしょうか?
たとえば、次の代わりに:
LinkedStack<Integer> list = new LinkedStack<Integer>();
これでなければなりません:
StackInterface<Integer> list = new LinkedStack<Integer>();
私の意見では:
LinkedStack<Integer> list = new LinkedStack<Integer>();
で宣言されていない LinkedStack の特定のメソッドが必要な場合にのみ適していStackInterface
ます。
StackInterface<Integer> list = new LinkedStack<Integer>();
そうしないと、さまざまな理由(効率上の理由など)でインターフェースの実装者を「プラグイン」できるため、より良い方法です。