gpt4 book ai didi

c# - MVC Controller VS 工厂方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:03 25 4
gpt4 key购买 nike

我有专门为一个客户定制的 asp.net MVC 项目。

我需要扩展项目以与尽可能多的客户合作。

每个客户都可以决定是否打开或关闭某些功能(第一次添加新客户时在数据库中定义)

我想知道最好的方法是什么:

1) 使用包含所需基本功能的基本 Controller ,并添加一个新 Controller (针对每个新客户)来扩展基本 Controller 。

2) 只使用一个 Controller 并使用工厂方法模式构建每个客户(每个客户都有自己的具体类)。

3) 仅使用一个包含所有功能的 Controller ,并根据数据库开关(在第一次添加新客户时在数据库中定义)打开或关闭功能

谢谢

最佳答案

所有这些方法都过于严格,并且在获得一定数量的新客户之后,您要么到处复制代码,要么围绕一个客户不需要但为另一个客户使用的代码工作。

您最好将每个客户的具体要求作为通用的、可重复使用的选项来实现。例如,如果一位客户有计费部分,则不要创建带有计费部分的 ThatCustomerController,而是添加计费角色,添加计费 Controller ,然后限制该角色对 Controller 的访问。

现在可能感觉工作更复杂,但一年后您会感谢它的灵 active 。

非常粗略的伪代码示例:

public class GeneralController : Controller
{
public ActionResult Index()
{
// Everyone can come here
}
}

[Authorize(Roles = "Billing")]
public class BillingController : Controller
{
public ActionResult Index()
{
// Only those with the 'billing' role can come here
}
}

关于c# - MVC Controller VS 工厂方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27601907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com