我在这里有一些控制器,包含我可以在其他控制器中使用的方法。
我考虑将一些常用功能移出到基本控制器,然后这些功能可以继承。这个问题是我在多个基本控件中需要的方法,我无法访问。 (因为我们不能从多个基本控制器继承。)
我的另一个想法是将常用功能移出到Controller文件夹之外的各自的类中。
你会做什么?在ASP.NET MVC中有一种很好的方式来共享这样的代码,我还不知道吗?答案 0 :(得分:14)
关于面向对象编程有一个经验法则,你应该支持组合优于继承,它非常适合这种情况。
我会创建一个或多个封装相关方法的服务,然后从控制器中使用这些服务。
对于额外的点,从相关服务中提取接口,并将接口注入控制器以最大限度地分离关注点。
答案 1 :(得分:4)
我会考虑帮助类或其他东西。根据您所描述的功能帮助控制器/
答案 2 :(得分:1)
选择似乎是基本控制器或辅助类。您可以控制控制器创建并将帮助程序注入任何需要它的控制器。