当前位置:  开发笔记 > 编程语言 > 正文

具体类型还是接口?

如何解决《具体类型还是接口?》经验,为你挑选了1个好方法。



1> IAmCodeMonke..:

使用接口的全部意义在于您可以使用多态,这意味着您永远不必检查实例的类型.这样做是一个非常大的代码味道(见Fowlers Refacotring).将条件逻辑移动到具体类,并添加te函数,将其处理到接口

编辑(添加代码示例,因为最初的帖子是从手机完成的):

你正在努力:

void Main(string[] args)
{
   Bird bird = BirdFactory.GetPigeon();
   if (bird.GetType().Equals(typeof(Duck)))
   {
      Console.WriteLine("quack");
   }
   else if (bird.GetType().Equals(typeof(Pigeon)))
   {
      Console.WriteLine("coo coo");
   }
}

相反,尝试:

interface Bird
{
    void Speak();
}

class Duck : Bird
{
    void Speak()
    {
        Console.Write("quack");
    }
}

class Pigeon : Bird
{
    void Speak()
    {
        Console.Write("coo coo");
    }
}

void Main(string[] args)
{
    Bird bird = BirdFactory.GetPigeon();
    bird.Speak();
}

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有