私はフレームワークをコーディングしています(Javaでは、質問は一般的です)。ここでは、クライアントが実装するための一連のインターフェイスを提供します。フレームワーク内の関数は、実装クラスがどのように構築されるか、つまり、それらの実装に依存して他のインタフェースのインスタンスを提供することに依存することになります。例えばフレームワークのコーディングでどのデザインオプションを使用する方が良いですか?
私が持っているかもしれません:
Interface IContribution {
public IMyStuff getMyStuff();
public IHelper getHelper();
}
Interface IMyStuff {
public void doSomeMethod(IHelper helper);
}
にはどうすればいいIMyStuffとIHelperのそれらのインスタンスが利用可能であることを確認することができますか?
「getter」メソッドをインターフェイスに作成し、フレームワークで返されたnullオブジェクトを慎重にチェックする方法があります。
別のオプションは、実装するインタフェースメソッドを(戦略パターンを使用して)呼び出すファクトリを実装する抽象クラスを作成することです。しかし、これは私が最初にインターフェースを持っているという事実に反するものです。クライアントは抽象クラスを使用する必要があります。しかし、抽象クラスの代わりにインタフェースを使用することで、これを回避することができます。したがって、私はインターフェイスを提供するべきではなく、抽象クラスだけを提供するべきです...
これについてのあなたのアイデアは何ですか?これに対する実践的なアプローチは何ですか?
危険ウィルロビンソン、危険:建築家宇宙飛行士の先行。 – NotMe