我在工作中有一些 Controller ,其中包含可以在其他 Controller 中使用的方法。
我考虑过将一些通用功能移交给基本 Controller ,然后可以从中继承这些基本功能。问题在于,我无法在多个基本控件中使用需要的方法。 (因为我们不能从多个基本 Controller 继承)。
我的另一个想法是将通用功能移到Controller文件夹之外的自己的类中。
你会怎么办? ASP.NET MVC中有一种很棒的方式可以共享我尚不了解的代码吗?
最佳答案
关于面向对象的编程,有一条经验法则,您应该更喜欢组合而不是继承,它非常适合这种情况。
我将提供一个或多个封装有问题的方法的服务,然后从Controller中使用这些服务。
对于其他问题,请从有问题的服务中提取一个接口(interface),并将该接口(interface)注入(inject)Controller中以最大程度地分离问题。