应用关注点分离

时间:2009-01-25 22:53:49

标签: separation-of-concerns

我想知道你是否认为有必要重构这个课程。(关于分离关注)

publi class CSVLIstMapping<T>
{
 void ReadMappingFromAttirbutes();
 void GetDataFromList();
}

ReadMappingFromAttributes - 从类型T读取映射并将其存储在类中。有一个要使用的列表的名称和一些csvMappingColumns,其中包含要设置值的属性名称和csvcolumns的名称。

GetObjectsFromList - 使用CVSListreader(通过构造函数传入)从所有行获取数据,如KeyValuePair(Key = csvcolumnName,value = actual value),然后使用mappinginformation(listname和csvMappingColumns)来设置对象中的数据。

我无法确定这个课程是否有2个问题或一个问题。首先,我觉得它有两个,并开始重构从行到对象到另一个对象的转换。但在此之后使用该功能感到尴尬,因为我首先必须创建一个mappingretriver,之后我不得不重新检查行并将其与映射一起传递给“mapper”以从行转换对象< / p>

/ W

2 个答案:

答案 0 :(得分:1)

听起来像是我的两个问题:解析和映射/绑定。我把它们分开了。 CSV解析应该是一个明确定义的问题。你应该关心的不仅仅是映射。验证怎么样?如果解析日期字符串,在将其绑定到对象属性之前,是否要确保它是有效的?我想你应该。

答案 1 :(得分:0)

经验法则:如果它很尴尬,那就错了。

我不得不说我发现很难理解你在那里写的内容,但我认为你可能需要重构这个类:名字似乎不清楚,任何名为GetFoo()的方法都应该真的不能返回void,整个ReadMappingFromAttribute可能只是构造函数逻辑。