【问题标题】:Best Practice (Design Pattern) for copying and augmenting Objects复制和扩充对象的最佳实践(设计模式)
【发布时间】:2013-01-18 16:01:12
【问题描述】:

我正在使用提供对特殊服务器环境的访问权限的 API。此 API 具有广泛的数据对象,您可以从中检索。例如 APICar

现在我想要“我自己的”数据对象 (MyCar),其中包含该数据对象的所有信息,但我想省略一些属性,增加它,或者只是重命名其中的一些。

这是因为我需要 JSON 驱动的客户端应用程序中的那些数据对象。因此,当有人更改上述 API 并更改属性名称时,我的客户端应用程序将立即中断。

我的问题是:

是否有最佳实践或设计模式来复制这样的对象?就像当您有一个对象并希望将其转移到另一个类的另一个对象时?我在 Eclipse 中看到过类似的东西,叫做“AdapterFactory”,想知道它是否被广泛使用。

为了更清楚:我有ObjectA,我需要ObjectB。 ObjectA 来自 API,它的类可以经常更改。我需要一个方法或一个对象或一个能够将ObjectA 转换为ObjectB 的类。

【问题讨论】:

  • oodesign.com 该站点描述了各种广泛使用的模式。也许你会在那里找到适合的东西。我猜你想要的是一堆适配器,也许是一个门面。重命名和隐藏可能在代理模式中找到。只是一些“乍一看”的提示。您很可能需要结合一些模式来实现您描述的完整要求。
  • This question 立即上门搜索。并被关闭。
  • 与这个问题的关系在哪里?

标签: java design-patterns


【解决方案1】:

我想你在找Design Pattern Adapter

实际上只是将 A 类的一个实例包装在 B 类的一个实例中,以提供不同的使用方式/不同的类型。

“我认为”是因为您提到了复制问题,所以它可能不像持久性/传输那样是类/类型的事情。

根据您的情况,您可能还对动态代理感兴趣,但这是 Java 功能。

【讨论】:

  • 试图澄清我的问题。我认为适配器没有帮助,因为我需要自己指定“复制过程”。
  • 我在“运行时适配器模式的另一种形式”下找到了我正在寻找的内容。我认为这是实现我想要的方式。
  • 是的,该解决方案似乎是一种动态代理:它们在运行时动态构建适配器。在可配置的系统中,您经常需要它。
猜你喜欢
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
相关资源
最近更新 更多