我创建了一个项目,我需要在 n 层应用程序(3 层)中拆分操作
我从一个项目开始,然后开始添加我所有的课程。外汇
public IServiceFoo()
{
DoIt();
}
public ServiceFoo : IServiceFoo
{
...
}
添加了 IoC 和所有这些。开始重构,但碰壁了。我有 4 个组件。
- 型号/领域
- 服务/基础设施
- 达尔
- ASP.NET MVC 作为视图。
我在哪里粘贴我的 IServiceFoo 接口?唯一合乎逻辑的位置是在域/模型程序集中,因为所有其他项目都知道这一点,因此可以跨应用程序使用。
我是否调用我的程序集:模型的域 instad,因为它不再只是模型?
服务也是如此?这更像是一个基础设施,因为它包含服务类和计算逻辑。
希望你能帮忙?谢谢。
-- 编辑- 08142012 -- 我的解决方案领域:一家商店,用于教育和更好的建筑知识。
Solution (a 3 layers application :D then!)
DAL - assembly (only pulls data up and save data)
- ProductDAL : IProductDal
- GroupDAL : IGroupDAL
- UserDAL : IUserDAL
Service - assembly
- ProductService : IProductService (calculate products, load product by DAL)
- GroupService : IGroupService (do some stuff with group, maybe delete group in list with no product)
- UserService : IUserService (validate if a user can login, load user by dal, check password)
Models - assembly
- Product
- Group
- User
- Webshop - assembly (ASP.NET MVC) (with all the viewmodel and models, UI Helpers)
Using DI/IoC as the glue, that sticks it all to getter.
另外:网上商店引用所有程序集。除了接口之外,服务层和 dal 层都知道彼此的注意事项。
我的 Service 和 DAL 接口的最佳位置在哪里?希望这会有所帮助:S