设计模式以从API重写Java类

时间:2016-10-11 13:23:19

标签: java design-patterns

我必须使用EWS Java API来调用Exchange Server。 在这个API中,有一个Task类,它有超过20-30个不同属性的getter。 在我们公司,我们将只使用4-5个房产;联系和约会的同意。

在我看来,我认为编写一个迷你API可能更实际,因此开发人员可以更容易地找到他们必须用于三个项目(约会,任务,联系人)的4-5属性。

我刚创建的ExtendedTask必须从原始API扩展Task类吗?如果是,我是否必须在ExtendedTask中创建4-5属性,因为它与父类有关?!

如果你是我,你会怎么做?使用原始课程?创建一个子类?创建另一个不扩展Task类的类?

谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

使用Facade模式。创建一个类,该类封装了用户为了使用与任务相关的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();
  }

}