在另一个接口内声明接口类型的属性

时间:2014-04-16 05:30:39

标签: c#

我有一个名为ITaskManager的接口,它包含以下方法的签名,

public interface ITaskManager
{
   void Initialize();
   void CloseConnection();
   void OpenConnection()
}

还有一个界面ITaskScheduler,

public interface ITaskScheduler
{
   void Schedule();
   ITaskManager Task { get; }

}

那么 ITaskManager任务有什么好处{get;声明?

2 个答案:

答案 0 :(得分:1)

您可以拥有多个ITaskManager,而任务计划程序需要一个ITaskManager才能生存。

这是一个更好的例子:

public interface IResturant
{
   IMenu Menu {get;}
}

public interface IMenu
{
   Dictionary<string,double> MenuItems{get;}
}

public class BurgerKingMenu : IMenu
{
   // Menu items will contain the whole Burger King menu
}

public class KFCMenu : IMenu
{
   // Menu items will contain the whole KFC menu
}

public class KFCResturant : IResturant
{
   // will get KFC's IMenu
}

public class BurgerKingReturant : IResturant
{
   // will get Burger King's IMenu
}

答案 1 :(得分:1)

它将提供抽象。 稍后您可以从ITaskManager继承各种任务管理器,例如DataBaseTaskManagerFileTaskManager

通过这种方式,您可以在界面级别工作,而无需担心ITaskManagerITaskScheduler的具体实现。