VS2K8,C#。我目前有一个包含以下项目的解决方案:
核心 - POCO域对象和数据接口
数据 - 存储库模式。实现Core中定义的接口。还有Fluent NHibernate的映射类。
Infrastructure - 用于依赖注入,配置nhibernate等。
测试 - 测试[测试核心,数据等]
Web - MVC2 Web项目
现在,话虽如此,我正在尝试确定添加以下内容的最佳方法:加入邮件列表,提交联系信息等。
我不相信这些应该在网上。我不认为他们需要放在数据中,除非保存邮件列表信息和联系信息,fwiw。
听起来这应该放在Core级别。话虽如此,如果放在Core中,它将依赖于保存到数据库。我对这个地方以及如何设计它感到有点困惑。你们采取什么样的路线?
这是否就像使用名为JoinMailingList(emailAddress)的方法在Core级别上创建一个名为MailingList的接口一样简单,然后在Data上实现该接口?这听起来不是最好的路线,因为它是一个商业问题。想法?
答案 0 :(得分:3)
添加服务库并在核心库中包含服务接口。
public interface IMailingListService
{
void Subscribe(string email);
void Unsubscribe(string email);
}
public interface IMailingListRepository
{
MailingList LoadMailingList();
void SaveMailingList(MailingList list);
}
public class MailingListService: IMailingListService
{
private IMailingListRepository _repository;
public MailingList(IMailingListRepository repository)
{
_repository = repository;
}
public void Subscribe(string email)
{
var list = _repository.LoadMailingList();
list.Subscribe(email);
_repository.SaveMailingList(list);
}
}