3
我想知道如何更好地這樣寫代碼,使其利用更堅實的原則......改進通用類型檢查(factory-ish模式)以更加符合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 2012-03-27 19:52:42