2013-11-25 75 views
1

表示层获取并保存的每条数据尽可能简单且没有附加上下文信息的模式名称是什么?这是干净的数据模式吗?

例如。

CustomerManager manager = new CustomerManager(); 
Customer customer = manager.GetCustomerByEmail(string emailAddress); 
DoSomething(customer); 
manager.Save(customer); 

这是推荐使用MVC吗?我看到很多控制器和视图模型都在使用ef上下文的例子。这让我觉得很糟糕。

PS。我对“清洁数据”模式的引用只是我的最佳猜测,而不是对实际模式的参考。

+1

这看起来更多领域驱动给我..不知道我曾经遇到过的“干净的数据”模式。你可能在想什么是“活动记录”。 –

回答

2

我从来没有遇到过“清洁数据”模式..但这看起来更像Active Record Pattern

通常在应用此模式时,您的域对象上有Insert()Update()Delete()方法。

这些日子你并不是经常看到这种方法。人们更倾向于保持持久性逻辑和业务逻辑的解耦。然而这种方法导致你沿着它们的路径交织在一起。这使得测试变得更加困难,并且代码库变得很难抵抗。

+0

我会在管理器类中使用我的CRUD方法,而不是在对象类中。对象类将尽可能简单,包含所有业务逻辑的Manager类都可以。我也想分离业务逻辑和持久性逻辑,但我在这里关注的是演示文稿和业务层之间的分离。 – Jamie

1

我倾向于使用的命名模式是“存储库”模式,其中存储库封装了数据访问层如何使用的实现细节。这样,你可以从EF(或其他)切换,而无需你的控制器层代码需要知道它。

http://martinfowler.com/eaaCatalog/repository.html

+0

我看了一下链接。这似乎太复杂,我试图达到。你知道更简单的类似模式吗? – Jamie

+0

存储库的实现只有它需要的复杂性。我的存储库类仅公开我在需要它们的类型中使用的特定方法。 –

相关问题