У меня есть несколько разных классов, исходящих из внешних источников (не поддающихся модификации), которые представляют одну и ту же концепцию. Например 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
не имеет смысла, поскольку не существует состояния (только поведение), и когда классы имеют только поведение, оно сводится к статическим методам в классе утилиты. В долгосрочной перспективе, в любое время, когда мне нужно сопоставлять новые объекты друг с другом, у меня есть одно место для добавления/изменения/удаления методов. Как это могло измениться, но я знаю, где код сидит (в одном месте) и может изменить отображение, когда мне нужно.
Мысли?