刚刚在SO上创建了一个acc来问这个:)
假设这个简化示例:构建Web应用程序来管理项目......
应用程序具有以下要求/规则.
1)用户应该能够创建插入项目名称的项目.
2)项目名称不能为空.
3)两个项目不能具有相同的名称.
我使用的是4层架构(用户界面,应用程序,域,基础架构).
在我的应用层上,我有以下ProjectService.cs类:
public class ProjectService
{
private IProjectRepository ProjectRepo { get; set; }
public ProjectService(IProjectRepository projectRepo)
{
ProjectRepo = projectRepo;
}
public void CreateNewProject(string name)
{
IList<Project> projects = ProjectRepo.GetProjectsByName(name);
if (projects.Count > 0) throw new Exception("Project name already exists.");
Project project = new Project(name);
ProjectRepo.InsertProject(project);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的域层,我有Project.cs类和IProjectRepository.cs接口:
public class Project
{
public int ProjectID { get; private set; }
public string Name { get; private set; }
public Project(string name)
{
ValidateName(name); …Run Code Online (Sandbox Code Playgroud)