对象转换模式

dju*_*ble 16 java dictionary design-patterns object

我有几个不同的类来自外部源(不可修改),代表相同的概念.例如Address.我有com.namespace1.Address(有田houseNum,street,city), com.namespace2.Address(与领域h,s,c),(namespace3.com.CoolAddress与领域house_num,street,city).

问题是我使用的某些Web服务需要某些Address对象类型,所以我需要创建一个com.namespace1.Address给定的a namespace3.com.CoolAddress.这些字段很容易映射,但我正在寻找一个如何做到这一点的模式.

从我的角度来看,实例对象AddressConverter没有意义,因为没有状态(只有行为),当类只有行为时,它归结为实用程序类中的静态方法.从长远来看,无论何时我需要将新对象映射到另一个,我都有一个地方可以添加/修改/删除方法.如何完成它可能会改变,但我知道代码所在的位置(在一次位置)并且可以在需要时更改映射.

思考?

dj_*_*ult 8

我想你要找的是工厂级.当您需要能够实例化由工厂而不是开发人员确定的几个相关类中的一个时,将使用工厂模式.

http://en.wikipedia.org/wiki/Factory_method_pattern

你是正确的尝试将所有这些业务逻辑保存在一个地方,而不是做ClassOne.toClassTwo(),ClassOne.toClassThree(),...

我能想到的最灵活的方法是实现它(但不是最简单的方法)是让工厂从一个只有基本常用方法的简单类开始,并将处理程序添加到Hashtable或其他容器中.这样,您就不需要具体实现每种可能的功能组合.

当然,对每个可能的地址变量进行具体实现会更快,但是会有相当多的重复代码,并且添加新的地址类类型会有点困难.

  • 工厂是一种创造模式。问题是关于管理现有对象而不是创建新对象。 (2认同)