私は、同じ概念を表す外部ソース(変更不可能)からのいくつかの異なるクラスを持っています。たとえば、Address
です。私が持っているcom.namespace2.Address
namespace3.com.CoolAddress
(フィールドhouse_num
、street
、city
付き)、(フィールドh
、s
、c
付き)、(フィールドhouseNum
、street
、city
付き)com.namespace1.Address
。オブジェクト変換パターン
私が使用する特定のWebサービスでは、特定のAddressオブジェクトタイプが必要なので、namespace3.com.CoolAddress
というcom.namespace1.Address
を作成する必要があります。フィールドはマップするのは簡単ですが、私はそれを行う方法のパターンを探しています。
インスタンスオブジェクトAddressConverter
は、状態がない(動作のみ)ため、意味がありません。クラスには動作しかないため、ユーティリティクラスの静的メソッドになってしまいます。長期的には、いつでも私は新しいオブジェクトをお互いにマップする必要があります。メソッドを追加/変更/削除する場所が1つあります。どのように変わっていくのかは分かりますが、コードがどこにあるのかを知り、必要なときにマッピングを変更することができます。
思考?
+1ハンドラテーブルの提案 - 私はかなりそのパターンを使用します。 しかし、 'Hashtable'ではなく' Map'を使用してください。 :) –
工場は創造的なパターンです。問題は、新しいオブジェクトを作成するのではなく、既存のオブジェクトを管理することです。 – SomeWittyUsername
@icepack私は、あるオブジェクトを別のオブジェクトにマッピングするときに、OPが新しいインスタンスを作成したいと思うと思います。私は、「いくつかの異なるオブジェクトが外部ソースから来ている(変更不可能)」という文で、オブジェクトのクラスが変更不可能であることを意味すると思います。私はこれを次の文章に基づいています。 "** namespace3.com.CoolAddressを指定して** com.namespace1.Addressを作成する必要があります。"私は文章を編集します。 –