我正在设计类,以便每个类都使用数据访问层从数据库中填充自身。所有类都将被实例化为空,并将根据给定的ID进行自身加载。业务层会话只需在会话中的所有类之间循环并在每个类上调用load()。
实例化所有297个类并使它们为空并在会话中等待的最佳方法是什么?我正在查看IoC,反射和良好的ole对象工厂开关语句,但是该开关太大。我真的不想硬编码要在代码中注册和创建的类名称,而不管IoC,反射或委托方法注册如何。
我有点想在每个表中添加一个扩展属性(DomainObject:TypeStringOfObject),因为域类与表一一对应。然后,只需从具有扩展属性值的任何表中获取所有扩展属性值即可。我的代码将根据返回的扩展属性创建类的实例。在我看来,这太过分了。我正在考虑的另一件事是为该特定名称空间中的每个类创建一个类实例,但是我认为使用反射会极大地影响性能。我想IoC容器将是第二种方法的最佳选择。
关于如何在工厂中没有大型switch语句的情况下如何处理我的情况的任何想法?还是必须阅读需要创建的297个类的列表?
谢谢 -肯