3

与えられた: - 同じインターフェースの下で収集する必要があるさまざまな実装

不運: これらの実装にはメソッド「create」がありますが、入力パラメーターの数とタイプが異なります

ソリューション....? オブジェクトの可変引数以外にどのようなオプションがありますか?

4

4 に答える 4

0

次の 3 つのオプションが表示されます。

  1. method を持つオブジェクトを構築するときにパラメーターを渡すことができますcreate()。したがって、を含むインターフェイスを実装するオブジェクトのコンストラクターにパラメーターを追加するだけですcreate()
  2. メソッドを呼び出すオブジェクトを引数に取るように create を修正しますcreate()。そうすれば、インターフェイスが必要にcreate(ObjectWhichWantsCreation x)なり、このメソッドは特定のオブジェクトから必要なすべてのデータを取得します。
  3. Make create(Properties p)where Properties: http://docs.oracle.com/javase/6/docs/api/java/util/Properties.htmlこれは非常に一般的ですが、必要なデータが含まれていることを確認する必要があります。

もちろん、メソッドを持つように 2 と 3 を変更し、最初に呼び出す必要があるcreate()別のメソッドを追加することができます。setParams(SomeParams...)

于 2013-07-25T21:41:07.503 に答える
0

インターフェイスでは、呼び出したい create のバージョンを決定できる引数として条件を受け取るメソッドを提供します。条件に基づいて、それぞれの create() 関数を呼び出すことができます。ロジックはFactory デザイン パターンと同じです。

于 2013-07-25T09:06:12.390 に答える