API(1.4と1.5)の2つの異なるバージョンに接続できる必要があります.Foo APIを呼び出すことができます。また、APIに接続して結果を処理するコードは実質的に重複していますが、唯一の違いは2つのAPIから返されるデータ型です。重複を取り除くためにこれをどのようにリファクタリングすることができますか?唯一の違いが1つの変数の型である場合、重複コードをリファクタリングするか?
(1.5 APIを呼び出して、私自身のクラス)public class Foo14Connector
{
public void GetAllCustomers()
{
var _foo = new Foo14WebReference.FooService();
Foo14WebReference.customerEntity[] customers = _foo.getCustomerList;
foreach (Foo14WebReference.customerEntity customer in customers)
{
GetSingleCustomer(customer);
}
}
public void GetSingleCustomer(Foo14WebReference.customerEntity customer)
{
var id = customer.foo_id;
// etc
}
}
、ほぼ正確な複製クラスFoo15Connector.csで
public class Foo15Connector
{
public void GetAllCustomers()
{
var _foo = new Foo15WebReference.FooService();
Foo15WebReference.customerEntity[] customers = _foo.getCustomerList;
foreach (Foo15WebReference.customerEntity customer in customers)
{
GetSingleCustomer(customer);
}
}
public void GetSingleCustomer(Foo15WebReference.customerEntity customer)
{
var id = customer.foo_id;
// etc
}
}
(1.4 APIを呼び出して、私自身のクラス)Foo14Connector.csで
API上の1つのメソッド呼び出し(数百のうち)が1.5で新しいパラメータを持つため、2つの異なるコネクタが必要です。
クラスFoo14WebReference.customerEntityとFoo15WebReference.customerEntityの両方のプロパティが同じです。コネクタは異なるプロジェクトにある場合は
'Foo14WebReference.customerEntity'と' Foo15WebReference.customerEntity'は、共通のインターフェイスまたは基本型を共有していますか? –
両方のコネクタは同じプロジェクトにありますか? –
動的タイプを使用できますか? – Sneal