3
...ジェネリック型チェック(factory-ishパターン)をSOLID向けに改善しましたか?それはより多くのSOLID原則を活用するように、私はより良い、このようなコードを書くためにどのように思っていた
public static T TransformXmlToEntity<T>(string xml) {
if(typeof(T) == typeof(EntityA)) {
return TransformXmlToEntityA(xml);
} else if (typeof(T) == typeof(EntityB)) {
return TransformXmlToEntityB(xml);
}
}
private static T TransformXmlToEntityA(string xml) {
var entityA = new EntityA();
//mapping occurs; sudo code
entityA.Person = xml.element(Person).value;
...
return entityA;
}
private static T TransformXmlToEntityB(string xml) {
var entityB = new EntityB();
//mapping occurs; sudo code
entityB.Product = xml.element(Product).value;
...
return entityB;
}
このコードは、単に間違って感じています。しかし、私はそれをより良くする方法について考えることはできません。
+1、素敵なソリューションを – sll