2016-10-11 1 views
-1

EWS Java APIを使用してExchange Serverを呼び出す必要があります。 このAPIには、20〜30以上の異なるプロパティのgetterを持つTaskクラスがあります。 当社では、4-5物件のみを使用します。コンタクトとアポイントメントのidem。APIからJavaクラスを書き換えるデザインパターン

私の意見では、開発者は3つのアイテム(予定、タスク、連絡先)に使用する必要がある4-5のプロパティを簡単に見つけることができるようにミニAPIを書く方が現実的かもしれないと考えます。

私が作成したExtendedTaskは、元のAPIからTaskクラスを拡張する必要がありますか?はいの場合は、親クラスでレンダリングされているため、ExtendedTaskに4-5属性を作成する必要がありますか。

私の場合はどうしますか?元のクラスを使用しますか?サブクラスを作成しますか?タスククラスを拡張しない別のクラスを作成しますか?

ありがとうございました

+1

なぜあなたは元のクラスを拡張するのでしょうか?ゲッターが継承されて以来、あなたが望むものは得られません。コンポジションだけでなく継承について知っているならば、おそらくあなたの仲間の開発者を "助ける"ようにすべきではありません。 – Kayaman

+0

はい、そうです。私がそれについて考えるのではなく、ここでは構成がもっと役に立つはずです。 – Gabriel

答えて

2

ファサードパターンを使用してください。 3つのタスク関連のアクション(予定、タスク、連絡先)を使用するためにユーザーが必要とするすべてのロジックをカプセル化するクラスを作成します。

この「Facade」クラスを使用すると、APIの大部分が使用されていないため、エンドユーザーから実際の実装ロジック(元のAPI)を隠すことになります。

//pseudo code 

class MyAPIFacade { 

    @Inject 
    OriginalAPI api; 

    public Task getTask() { 
    return api.getTask(); 
    } 

    public Appointments getAppointments() { 
    return api.getAppointments(); 
    } 

    public Contact getContact() { 
    return api.getContact(); 
    } 

}

関連する問題