0

我有一组静态数据库访问层类,它们对车辆、经销商和大型跟踪记录执行 CRUD 操作。由于记录了对它们的注释等,这些对象的内存消耗可能相当大。让我们称这组类为“A”。

此外,我还有另一个名为 Lookups 的静态类,它执行只读操作以填充 DropDownLists。返回非常精简的对象(只有一个 ID 和一个文本字段) - 我们称这个类为“B”

类“B”中的方法从与集合“A”中的那些相同的表中读取。

B 中的一些代码看起来类似于“A”中的代码,除了返回更小的对象。

我违反了 B 中的 DRY 原则,但这只是因为我不想返回大对象来填充下拉列表。我希望这个系统具有可扩展性,所以在 RAM 上会很容易。但我不禁想到可能有更好的方法,设计明智。

你会推荐什么?

对于下一个项目,我将使用实体框架,但这是老式 ADO.NET 手工编码的 SqlConnection 和 SqlCommand 对象。

4

1 回答 1

0

我认为您应该为业务逻辑的每个实体拥有一个存储库。像这样的东西:

// dealing only with Vehicle operations
public interface IVehicleReposity {
    // Operations..
}

public class VehicleReposity: IVehicleReposity {
   // Impementiong operations and 
   // calling your static methods
}

这将允许您随时更改业务逻辑。因为你将能够调用你静态方法、实体框架或 Nhibernate,如果你想有一天..

在这种情况下,您不会重复自己,并且您将能够轻松地在依赖注入中工作。

于 2013-05-30T10:52:49.377 回答