前面接触过接口的概念,其实接口就是一组方法、属性,然后谁继承了它,谁就要实现这组方法和属性。也就是说这个类具备了这个接口定义的一些能力。
接口的这种特性在平常的程序编写中是有很大作用的,往往完成一个大项目需要很多人同时完成,这样难免会有一些类都需要某些方法,而且执行流程都差不多。这是在项目设计阶段就有必要把这种方法抽象出一个接口,然后在项目中,大家只需实现这个接口,从而防止大家由于各自定义各自的,导致了相同的操作比较混乱。
比如,在做桌面应用程序时,会用到很多窗口,窗口里会注册事件(这一般用于不同控件间事件传递),还会贴皮肤(即取图片作为窗体和窗体上的控件的背景图片)等等,这是每个窗口都需要用的方法。像这样就可以抽象出一个接口,命个名:
IWindowAdditionalAble。
比如在写UseForm窗口时实现该接口:
接口:
interface IWindowAdditionalAble
{
void PasteSkin();//给窗体中的控件贴皮肤
void RegisterEvent();//注册要用到的事件
}
实现接口代码:
public partial class UseForm : Form, IWindowAdditionalAble//每写一个窗体类都实现该接口
{
public UseForm()
{
InitializeComponent();
PasteSkin();
RegisterEvent();
}
#region IWindowAdditionalAble 成员
/// <summary>
/// 贴皮肤的方法
/// </summary>
public void PasteSkin()
{
this.btnTest.BackColor = Color.Gray;
}
/// <summary>
/// 注册事件的方法
/// </summary>
public void RegisterEvent()
{
this.btnTest.Click += new EventHandler(btnTest_Click);
}
void btnTest_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
}
#endregion
}
在其他窗口A、B...时都实现这个接口,这样比较统一,也不会落下某一个方法。当然也可以根据项目的需求不同写一些其他满足某些需求的接口来使用。