私は3つのレンタカー会社を持っています。各機関は、XML のデータを必要としますが、次のように異なる形式である必要があります。
代理店 1
<Rental>
<Customer>
<FirstName>test</FirstName>
<LastName>test</LastName>
</Customer>
<Pickup date="07/20/2012"/>
<Dropoff date="07/25/2012"/>
<Deposit cost="100"/>
</Rental>
エージェンシー 2
<Rental>
<Customer>
<FirstName>test</FirstName>
<LastName>test</LastName>
</Customer>
<Pickup>07/20/2012</Pickup>
<Dropoff>07/25/2012</Dropoff>
<Deposit>100</Deposit>
</Rental>
エージェンシー 3
<Rental pickup="07/20/2012" dropoff="07/25/2012" deposit="100">
<Customer>
<FirstName>test</FirstName>
<LastName>test</LastName>
</Customer>
</Rental>
上記からわかるように、3 つすべてに基本的に同じ情報が含まれていますが、必ずしもそうである必要はありません (情報が多かれ少なかれ含まれる場合もあります) が、構造が異なるため、アクセス方法が異なります。最小限のコードを記述しながら、構造の異なる新しいレンタル代理店に適応できるようにするための最善のアプローチは何ですか?
今、私は次のようなことをしています:
public class Agency1
{
SubmitRental()
{
//Parse XML for Agency 1
}
//Other methods for agency 1
}
public class Agency2
{
SubmitRental()
{
//Parse XML for Agency 2
}
//Other methods for agency 2
}
public class Agency3
{
SubmitRental()
{
//Parse XML for Agency 3
}
//Other methods for agency 3
}
上記のクラスには同じメソッドが含まれていますが、実装方法が異なります。一部のクラスに含まれるメソッドやプロパティなどがありますが、他のクラスには含まれていません。インターフェイスはこれにアプローチする最良の方法ですか? もしそうなら、すべてをインターフェイスにする必要がありますか?
上記の XML サンプルでは、データは同じでしたが、形式が異なっていたため、すべての異なる形式を一連の共通クラスにマッピングすることを思いついた人もいましたが、形式が異なるだけでなく、しかし、データも異なりますか?