我是靠谱客的博主 繁荣过客,最近开发中收集的这篇文章主要介绍原来接口是这样用的!一个例子搞定接口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

很不错的文章,自己也犯过同样的错误,呵呵,收藏

原文地址: http://www.cnblogs.com/cbcye/archive/2011/05/18/2050173.html

接口是面向对像编程里的基础知识了。但不得不承认之前对于接口的认识还是不到位的。记得刚毕业的时候从Asp转向.NET开发,接触了面向对像编程的很多知识。由于自己当时对新的知识非常感兴趣。因此在写代码的时候尽量往这些思想上靠拢。现在打开之前写的代码,看了简直要笑喷了。怪不得当时写完之后心理还想着接口好像没啥用啊。。。还增加不少工作量。

下面就先看看我之前是怎么用接口的吧,以下是我在07年的时候写一个域名Whois信息查询的代码片段.

1. 之前知道接口是先要先定义的,而且没有实现。所以我基本上把所有会用到的方法都先用接口定义出来。不想图片太大找了一个方法的代码来打开。

image

2. 知道方法的实现是在类里的,所以下面代码没有问题。就是引用接口并且具体实现方法

image

3.接口的定义和实现都有了,那么就是实现了。由于第一步就埋下失败的伏笔所以再接下来的使用就成了彻底的杯具了。。

看下图我画的箭头指向的位置,直接实例化类,跟接口没有半毛钱关系。

image

当时,这样开发下来之后还以为自己用了接口了。但是其实是彻底的没有搞懂。包括前面的定义就出现问题了,也就是不是根据接口的特点及面向对像编程的思想来开发的。直接就是霸王强上弓或者说是把接口当作虎皮膏药到哪都贴。

那么既然说了这么多在使用接口时的错误,怎么才能快速就清楚接口的定义和用法呢?具体概念性的东西不多说了。参考涛哥的文章吧《[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类》,我下面要举的是非常简单的例子(不全面)作为入门人员阅读。 借鉴众多园友的评论我在示例中添加了直接传类的调用

using  System;
namespace  ConsoleApplication4
{
    
// 接口
     internal   interface  IMyHandler
    {
        
void  SayHello();
        
void  SayMsg( string  msg);
    }
    
// 具体实现类A
     class  MyHandlerA :IMyHandler
    {
        
public   void  SayHello()
        {
            Console.WriteLine(
" Hello from MyHandlerA " );
        }
        
public   void  SayMsg( string  msg)
        {
            Console.WriteLine(msg
+ "  from MyHandlerA " );
        }
    }
    
// 具体实现类B
     class  MyHandlerB : IMyHandler
    {
        
public   void  SayHello()
        {
            Console.WriteLine(
" Hello from MyHandlerB " );
        }
        
public   void  SayMsg( string  msg)
        {
            Console.WriteLine(msg 
+   "  from MyHandlerB " );
        }
    }
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
// 实例化A,用接口类型来声明
            IMyHandler myHandler  =   new  MyHandlerA();
            myHandler.SayHello();
            
// 实例化B
            myHandler  =   new  MyHandlerB();
            myHandler.SayHello();
            
// 传接口
            Write(myHandler);
            
// 传类A
            MyHandlerA myHandlerA  =   new  MyHandlerA();
            Write(myHandlerA);
            Console.Read();
        }
        
// 接口作为参数类型
         static   void  Write(IMyHandler myControl)
        {
            myControl.SayMsg(
" Hello World!!! " );
        }
    }
}

其实就是在接口的使用的时候用接口类型来声明,将接口作为参数类型,这两个基础基础的操作。

我知道在博客园这种地方,首页放这样的文章一定会被无数人鄙视的,但我还是想发到首页。让更多人看看接口是如何使用的。这是一到跨向面向对像编程的鸿沟,让尽量多的人能够快速通过这个鸿沟,通向面向对像编程的大道吧:)


最后

以上就是繁荣过客为你收集整理的原来接口是这样用的!一个例子搞定接口的全部内容,希望文章能够帮你解决原来接口是这样用的!一个例子搞定接口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部