zoukankan      html  css  js  c++  java
  • c# interface 的理解(工厂模式)简单实例

    由于昨天在一个大公司面试,被c#中的一个interface给难住了,所以回来以后我就找了这些资料看了一下,有了一点感觉。记录下来,方便以后使用。

    c# interface定义:就是以前使用的类似于 API 的东西,别人告诉你一个类型,你在心得开发过程中可以使用。

    比如:

      

    interface ITest
      {
       string iText();
      }

      class Test:ITest
      {
       #region ITest Members

       public string iText()
       {
        // TODO:  Add Test.printText implementation
        return ("Test string.");
       }

       #endregion

      }

      class Test2:ITest
      {
       #region ITest Members

       public string iText()
       {
        // TODO:  Add Test.printText implementation
        return ("Test2 string.");
       }

       #endregion

      }

      class Factory 
      {
       public static ITest create(int itype)
       {
        if(itype==1)
        {
         return new Test();
        }
        else
        {
         return new Test2();
        }
       }

      }


      private void button1_Click(object sender, System.EventArgs e)
      {
       ITest it=Factory.create(2);
       this.label1.Text=it.iText();
      }
     }

    Test 和 Test2 都是继承接口 ITest ,在使用ITest时候,使用了简单的Factory模式来建立,本来是使用了Rose来画一个UML模型上来也许讲解的更详细,但是Rose也是这次学习的一点,所以没有使用会,正在研究中.

    一个简单的实例,让我了解到:

    1、接口 Interface : 并不是我想象的那么可怕,如果我简单的理解就是一个户口登记的地方,在这里登记的用户(方法),在他的儿子(实现接口的类型: Test ,Test2)中,就必须承认Interface中的人员的存在,并且必须给安排一个位置(实现接口的内容)。所以接口的最简单的好处就是:保持了继承型,使更多的人联系起来。

    2、工厂模式:Facory Model:最开始接触这些东西是在Patterns In Java 的pdf中看到的,因为模式的编程方式是对接口编程的,所以开始理解这些方面的时候理解上有问题了。现在总算能明白一点点了。工厂模式就是(ITest)的新生儿(接口的实现类: Test,Test2)的户口登记处,到时候不管你要用那个儿子,只需要在这注册一下,就ok了。

    简单的一个实例,让我对接口interface和Factory Model有了最基本的认识,也是刚刚理解这些东西,所以肯定有一些漏洞,但是我会继续加油,努力把这部分学好的。

    加油!

     
  • 相关阅读:
    CodeForces 785D Anton and School
    CodeForces 785C Anton and Fairy Tale
    CodeForces 785B Anton and Classes
    CodeForces 785A Anton and Polyhedrons
    爱奇艺全国高校算法大赛初赛C
    爱奇艺全国高校算法大赛初赛B
    爱奇艺全国高校算法大赛初赛A
    EOJ 3265 七巧板
    EOJ 3256 拼音魔法
    EOJ 3262 黑心啤酒厂
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2237569.html
Copyright © 2011-2022 走看看