C#接口

来源:互联网 发布:java教材 pdf 编辑:程序博客网 时间:2024/06/14 06:23

C#接口-深入浅出

假设我们公司有两种程序员:VB程序员指的是用VB写程序的程序员,用VBpro这个类表示;C程序员指的是用C写程序的程序员,用Cpro这个类来表示。每个类都有一个WriteCode()方法。

现在公司来了一个项目,要求派某个程序员写一个程序。

using System;
//vb程序员
class VBpro
{
public void WriteCode()
{
    Console.WriteLine("我用vb写代码");
}
}

//c程序员
class Cpro
{
public void WriteCode()
{
    Console.WriteLine("我用c写代码");
}
}

//编写项目类
class Pro
{
public void Writeprogram(VBpro programer))//用VB写代码
{
      programer.WriteCode();
}
public void Writeprogram(Cpro programer)//重载方法用C写代码
{
    programer.WriteCode();
}

}

//在主程序中我们可以这样写

class Program
{
static void Main()
{
    Pro p = new Pro();
    //如果需要用VB写代码
    VBpro p1 = new VBpro();
    p.Writeprogram(p1);

    //如果需要用C写代码
    Cpro p2 = new Cpro();
    p.Writeprogram(p2);
}
}

但是如果这时公司又来了一个C#程序员,我们怎么改这段程序,使它能够实现用C#写程序的功能呢?我们需要增加一个新类C#程序员类,同时在此项目类中要再次重载WritePrograme(C#pro programer)方法。这下麻烦多了。如果还有C++程序员,JAVA程序员呢。麻烦大了!

//但是如果改用接口,就完全不一样了

using System;
//首先声明一个程序员接口
public interface IProgramer
{
void WriteCode();
}

//vb程序员
class VBpro: IProgramer
{
public void WriteCode()
{
    Console.WriteLine("我用vb写代码");
}
}

//c程序员
class Cpro: IProgramer
{
public void WriteCode()
{
    Console.WriteLine("我用c写代码");
}
}

//修改编写项目类
class Pro
{
public void Writeprogram(IProgramer programer)
{
    programer.WriteCode();
}
}

class Program
{
static void Main()
{
    Pro p = new Pro();
    VBpro p1 = new VBpro();
    p.Writeprogram(p1);
    Cpro p2 = new Cpro();
    p.Writeprogram(p2);
}

}

转载自:http://www.cnblogs.com/tanding/archive/2012/06/27/2565261.html 如有侵权请告知 即删

原创粉丝点击