用于封装表格数据列生成的设计模式?

时间:2015-05-06 11:48:35

标签: oop design-patterns

考虑以下情况:

使用以下行格式从某些数据生成CSV文件:

  

011111; 1; 1000221; 014501; 100; 343; 0; 0; 0085; 8,5; 0; 0; 0075; 7,5; 0; 0; 0; 0

每隔一段时间就会添加更多字段和字段。 生成每一行的代码是240行的函数。

现在我想以一种方式重构这个代码,每个列都会获得自己的对象,并且它自己的逻辑封装在每个对象中。这将使添加新列更容易,代码更易读。

但是这里使用什么模式?复合或装饰?

装饰者,因为已经有一条基本线,它可以用额外的列“装饰”。 并且复合,因为每一行都是由所有列组成的。

什么是更好的选择?

1 个答案:

答案 0 :(得分:1)

如果您的列具有复杂的评估逻辑,并且您不符合SOLID原则(尤其是开放/封闭原则),您可以为列创建基类或接口,使用" EvaluateValue& #34;方法。您可以通过派生新类来添加新列,而无需更改现有代码。只有实例化所有列的初始化程序必须通过新行扩展(附加新列),但这比在240行代码中添加内容更不容易出错。您可以使用一些IoC / DI容器来创建所有Column实例以避免这种情况。