设计模式,多重继承

时间:2012-03-05 06:48:43

标签: c# oop design-patterns

这可能是c#basics 101,但我只是想如果我不问我永远不会知道,并注定要编写结构错误的代码......(该项目将在MVC中,所以我的控制器需要继承自控制器类)

总之。我想构建我的代码。

public class Global_Base_Class: System.Web.Mvc.Controller { }

public class Production_Base : Global_Base_Class { GetPoducts, AddProduct... } 

public class Risk_Base : Global_Base_Class { GetRisk, AddRisk...  }    

public class Example_View_Controller_A : Production_Base { }     

public class Example_View_Controller_B : Risk_Base { } 

如果我需要/想要(干掉我的代码)

,该怎么办?
public class Example_View_Controller_C : Production_Base, Risk_Base 

我已经读过多次继承不是好习惯/不允许在c#...

为实现这一目标,我最好的路线/最佳做法是什么?

任何帮助/链接将不胜感激

1 个答案:

答案 0 :(得分:3)

首先:不要那样命名你的课程。 Microsoft已经编写了一套指南:http://msdn.microsoft.com/en-us/library/ms229002.aspx

您的结构在任何OOP语言中都无效,因为关系不是is-a。控制器是MVC控制器,而不是具有业务逻辑的类。 Google favor composition over inheritance了解更多信息。

所以答案是

将常用功能移动到一个单独的类中,该类包含在需要它的所有类中。 (RiskServiceProductionService