2016-10-11 6 views
-1

EWS Java API를 사용하여 Exchange Server를 호출해야합니다. 이 API에는 다른 속성의 getter가 20-30 개 이상있는 Task 클래스가 있습니다. 당사에서는 4-5 개의 속성 만 사용합니다. 연락처 및 약속에 대한 idem.API에서 Java 클래스를 다시 작성하는 디자인 패턴

내 의견으로는 개발자가 세 가지 항목 (약속, 작업, 연락처)에 사용해야하는 4-5 속성을 쉽게 찾을 수 있도록 미니 API를 작성하는 것이 더 실용적 일 수 있다고 생각합니다.

방금 ​​만든 확장 작업은 원래 API에서 작업 클래스를 확장해야합니까? 그렇다면 확장 클래스에 4-5 속성을 생성해야합니까? 부모 클래스와 중복되기 때문입니다.

내가 너라면 무엇을 할 것입니까? 원래 수업을 사용합니까? 하위 클래스를 만드시겠습니까? Task 클래스를 확장하지 않는 다른 클래스를 만드시겠습니까?

도움 주셔서 감사합니다.

+1

왜 원래 클래스를 확장 것인가? getter가 상속 된 이후로 원하는 것을 제공하지 않습니다. 구성에 관한 것이 아니라 상속에 대해서만 알고 있다면 동료 개발자에게 "도움"을 주려고해서는 안됩니다. – 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(); 
    } 

}