天儿真好, 我试图对一个主题进行搜索,但至少还没找到任何东西。
我有一个实现接口IEntity的3个域对象。我想构建一个通用的数据映射器层来对IEntity进行创建,更新,删除操作。问题是每个具体实体都保存在自己的表中,因此我需要有3个具体的映射器来处理它。 然而,客户端对具体对象一无所知 - 它只知道IEntity abstration。显然,我不希望具体对象知道有关映射器的任何信息。
所以似乎应该有一种方法让客户端获得正确类型的映射器。在这种情况下会使用服务定位器模式吗?
类似的东西:
public IEntityDataMapper GetMapper(IEntity entity)
实现这一目标的其他一些方法?我的域名模型的标志首先是否有点错误?
我想要完成的例子: (客户代码)
IEntityMapper mapper;
IEntity abstractEntity;
mapper.Update(abstractEntity);
每个实体的更新背后的逻辑可能非常不同。
答案 0 :(得分:0)
答案 1 :(得分:0)
我不清楚你想做什么,或者 - >但是你熟悉ORM的概念,例如NHibernate,你试图将这些entites映射到关系数据库吗? 您可以使用简单的NHibernate会话进行抽象:
IEntity someEntity = new Customer("John", "Doe");
session.Save(someEntity);
前提是您将实体映射到数据库......