在另一个接口内声明接口类型的属性
本文关键字:接口类型 属性 声明 另一个 接口 | 更新日期: 2023-09-27 17:58:43
我有一个名为ITaskManager的接口,它包含以下方法的签名,
public interface ITaskManager
{
void Initialize();
void CloseConnection();
void OpenConnection()
}
还有一个界面ITaskScheduler,
public interface ITaskScheduler
{
void Schedule();
ITaskManager Task { get; }
}
那么ITaskManager Task{get;}声明的好处是什么?
它将提供抽象。稍后,您可以从ITaskManager
继承各种任务管理器,比如DataBaseTaskManager
、FileTaskManager
。
这样,您就可以在接口级别工作,而不必担心ITaskManager
和ITaskScheduler
的具体实现。
您可以有多个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
}