使用C#接口扩展现有应用程序

时间:2016-03-31 00:29:56

标签: c# asp.net oop

我即将开始重新开发我的ASP.NET C#MVC商业项目,该项目负责提名澳大利亚的马事件。

我想将它扩展到其他类型的活动,例如赛车,足球,任何事情。目前,它对这项运动非常具体

我一直在研究接口和其他OOP方法,但将它应用到现实世界有点令人生畏。

这是我的基本计划:

public interface INomination
{
    public void AddNomination(); 
    public void UpdateNomination();
    public void DeleteNomination();
}

public BaseNomination
{
    // Define properties
}

public HorseNomination : BaseNomination, INomination
{
    // Horse nomination specific stuff, like specifying the horse
    public bigint HorseID { get; set; }
}

然后,在NominationService中,我可以称之为

public void HandleNomination(INomination nomination)
{
    nomination.Add();
}

我的头开始受伤的是如何区分要求用户为HorseNomination指定马匹的提名,如CarNomination?

我需要IHorseNomination,ICarNomination吗?如果是这样,我如何处理它以呈现用户输入的View类型?

1 个答案:

答案 0 :(得分:1)

正如我从问题中所理解的那样,你是如何被称为差别提名,即提名,CarNomination等。

public void HandleNomination(INomination nomination)
{
   nomination.Add();
}

您必须在此参数中传递的内容是您要为其执行操作的类的对象。

  // If you want to perform actions from HorseNomination 
    HandleNomination(new HorseNomination());

  // If you want to perform actions from CarNomination
    HandleNomination(new CarNomination());

但请记住,为了传递对象,您必须继承该类的接口。

我希望我能理解你的问题,并尝试了一点点回答。