У меня есть несколько разных классов, поступающих из внешних источников (неизменяемых), которые представляют одну и ту же концепцию. Например Address
. У меня есть com.namespace1.Address
(с полями houseNum
, street
, city
), com.namespace2.Address
(с полями h
, s
, c
), namespace3.com.CoolAddress
(с полями house_num
, street
, city
).
Проблема в том, что некоторым веб-службам, которые я использую, требуются определенные типы объектов Address, поэтому мне необходимо создать com.namespace1.Address
с учетом namespace3.com.CoolAddress
. Поля достаточно легко сопоставить, но я ищу образец того, как это сделать.
С моей точки зрения, экземпляр объекта AddressConverter
не имеет смысла, так как нет состояния (только поведение) и когда классы имеют только поведение, он сводится к статическим методам в служебном классе. В долгосрочной перспективе, когда мне нужно отобразить новые объекты друг на друга, у меня есть одно место для добавления / изменения / удаления методов. То, как это сделано, может измениться, но я знаю, где находится код (в одном месте), и могу изменить отображение, когда мне нужно.
Мысли