私は、少なくとも5つの具体的な実装のために共通のService
インターフェイスを設計しています。現在、これらのサービスはすべて異なるタイプのインプットを必要とします。私はパラメータを保持するためにParam
クラスを作成することを考えていました。しかし、いくつかの実装では、フィールドのいくつかは使用されません。私もMap
を使って私のパラメータを保持することを考えましたが、それはまた良くありません(キャストとif-elsesどこでも)。また、私は静的メソッドService.responseAsPerFirstImplementation(p1, t1, i1)
などでクラスを作成することを考えました。しかし、この方法は良いコーディングではありません。モジュール設計、柔軟性とパラメータのバラツキの間でどのように設計すべきかをお勧めしますか?異なるタイプのパラメータを使用したサービスの設計java
編集: それを行う良い方法はありますか?
public class Client {
public static void main(String[] args) {
System.out.println(Services.response(new UserParam(1, new Date())));
System.out.println(Services.response(new PatternParam("core")));
}
}
なぜ共通のインターフェイスが必要なのですか? – lexicore
実装をクライアントに公開しないようにします。私は 'サービス'クラスから 'Service'インスタンスを取得するメソッドを使用したいと思います(インスタンスのキャッシュなどをサポートするため) – GurV
しかし、なぜ*共通の*インターフェースですか? – lexicore