【问题标题】:Should I hide generated classes behind a layer?我应该将生成的类隐藏在图层后面吗?
【发布时间】:2011-04-25 23:51:33
【问题描述】:

我有几个从 WSDL 生成的类,我需要编写 2 个小型应用程序来读取一些输入数据、调用 Web 服务并编写响应。

现在我创建了一堆非常简单的包装类,它们从 web 服务调用返回的对象中获取数据。我围绕 web 服务代理创建了一个 包装器,它返回我自己的类而不是生成的类型。我试图实现的是一个解耦模型,它不会向我的简单应用程序显示任何生成的类

但我想我可能过度设计整个事情。目前,这 2 个小型应用程序的大小几乎与模型类和包装器相同,但我相信以后会有更多需求出现,我希望灵活一些。

我应该隐藏生成的类(并将这部分视为数据访问层)还是应该为第一个版本使用生成的类?

【问题讨论】:

  • 我应该提到,这些应用程序现在可能会使用平面文件,但稍后会使用数据库。或者也许另一个应用程序想要使用我为应用程序提供的功能,因此我需要为我自己的应用程序添加一个 Web 服务接口。

标签: java data-access-layer decoupling


【解决方案1】:

我们在这里谈论的是将军,所以我会以同样的方式回应。除非您有特定的构建需求,否则不要为未来设计太多,而是选择可以灵活应对未来的框架和方法。问题是,如果你现在为未来设计,你甚至没有明确要求,所以你在猜测和担心。见the "You Ain't Going to Need It" principle

现在关于您现在是否需要数据访问层的问题:如果您发现您有一个除了在其他两个层之间进行转换之外什么都不做的层,那么您就不需要它。另一方面,如果有一组任务在一个层中处理,这将使其他层更简洁明了,希望同时减少冗余,那就去做吧。

【讨论】:

  • 这正是我的问题。我只需要 web 服务返回的数据的一小部分,我不想将所有这些东西暴露给我的应用程序(我假设我很快会将整个项目交给其他人,因为这只是对我来说是一个附带项目)。返回的对象有很多方法,如 getWkt()getWkp() ,我自己读起来很头疼。我试图将所有这些隐藏在我自己的对象后面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多