我很陌生。在我们的应用程序中,我们有多个存储库和一个breeze API控制器来处理通信。但是,由于应用程序很大,breeze控制器被分成几个部分类,将问题分开。例如,我们有相关的存储库来处理Location,Holiday和Service实体,并且为了使与这些实体相关的通信,我们使用一个部分类控制器。还有其他几个存储库。
//ClientLocationController.cs
public partial class ClientController : ApiController {
//handles location related communication
}
//ClientUserController.cs
public partial class ClientController : ApiController {
//handle user related communication
}
我的问题是,使用扩展BreezeController的多个控制器是不是很糟糕?在上面的例子中,我们可以使用两个控制器代替部分类吗?
//ClientLocationController.cs
public class ClientLocationController : ApiController {
//handles location related communication
}
//ClientUserController.cs
public class ClientUserController : ApiController {
//handle user related communication
}
我们在MVC中使用这种类型的设计。在Breeze中做同样的事情是不好的做法吗?
答案 0 :(得分:1)
为不同的功能区域或"域使用单独的控制器类"是分离问题的常用方法。
如果您有许多功能区域,每个功能区域都有自己的实体集,那么单独的控制器类特别有用。
有些甚至可能为每个实体类型使用一个控制器。
以您所描述的方式使用部分类将更多地被视为代码组织实践(或反实践),类似于代码regions。如果你真的想分开一些事情,那就要避免。
有关部分类用例的更多信息:When is it appropriate to use C# partial classes?