我应该在我的C#程序或阅读器方法中使用Main方法来创建我的列表吗?

问题描述:

我正在从一个Excel工作表读取数据,将每行放入一个名为“Sale”的类中,然后在未来处理该列表。我是否应该将销售额添加到用于读取名为“Reader”的Excel文档的类中的列表中,还是应该在Main类和方法中创建列表。我目前有我的主要方法创建读者的一个实例。然后这位读者通过一个修饰符将行或“销售”传递给它们,这些修饰符将对它们进行排序。然后,打印机类将该列表作为参数并将其打印到不同文档上的同一工作簿中。我应该在我的C#程序或阅读器方法中使用Main方法来创建我的列表吗?

在我的程序中做一个或另一个会有什么重大的不同吗?如果是这样,为什么和哪个在效率和组织方面更好。

+2

'销售'应该可能是一个单独的类,它维护一个'销售'项目列表。然后,您可以添加方法来操作该类中的列表。 'Reader'方法应该就是这样。它将检索用于创建销售对象的Excel数据,然后使用Sales.Add()方法将其添加到列表中。 – Deolus

+1

如果'Sale'表示行数据,那么它应该与其存储分开。你可以有'List sales'和'Reader'会做'sales.Add(sale)'。这样,存储实现可以在不更改Sale类的情况下更改(队列或堆栈)。 – Jasen

我同意@Deolus参照Sales作为它自己的类。

请将SalesReader分开,因为它们有不同的目的。如果Reader类创建为只读取Excel表格中的数据,那么这应该是它唯一的目标。在Sales类中,您可以创建其他方法来管理将来的销售清单。


威尔做一个或另一个对我做任何计划差异显著?

在运行程序,这将不会有所作为,但在可维护性方面,这是GOLD在速度方面。

这是separation of concerns的完美示例。代码组织得越好,意大利面代码不会变得越糟糕,在将来需要维护代码时,效率越高,效率越高。所以,显着差异将会在你不得不维持&在未来持续。

我希望这会有所帮助。

这是一个棘手的问题,因为你没有定义你以后使用的动作/类。 如果您需要另一个类来处理这些数据,那么从您的内存中擦除您的阅读器类的实例可能会更好。 然而,保持你的主类中的列表可能也不好,重要的是要知道,如果你通过价值或通过参考传递例如。让您的读者类传递值,让您的主类保存这些值并将它们传递给您的工作类可能会对cpu(因为这需要更多步骤)和内存,因为您创建副本 - 也许你不需要数据你的主要职业在通过之后已经有了。硬盘驱动器空间(尽管没有人关心这点,就小型应用程序而言,它并不重要) - 减少硬盘驱动器占用内存的代码量通常更少, /或cpu。

你的问题通常是模糊的,明确地说出什么更有效,但你也必须注意,代码优化是为了增强现有的代码,而不是首先构建代码本身。