聊一聊C#接口問題 新手速來圍觀
這段時間的項目有用到接口,開始不是特別理解接口,只是單單知道接口定義非常簡單,甚至覺得這個接口只是多此一舉(個人開發(fā)的時候)?,F(xiàn)在開始團隊開發(fā),才發(fā)現(xiàn)接口原來是這么的重要和便捷!
接下來就來談?wù)勎疫@段時間對接口使用的粗淺見解,說的對希望大家贊,說的有誤的地方希望大家多多包涵建議!
READY GO!
接口的定義就不多說了,它有一個很重要的知識點,就是所有繼承這個接口類的都必須實現(xiàn)接口中的定義,說到這個必須,在團隊開發(fā)中,只要我們商定好了接口,那我們的代碼是不是就統(tǒng)一了?。?!
這是我覺得接口重要的第一點:它便于我們統(tǒng)一項目的規(guī)定,便于團隊代碼的管理!
再來用一個例子說明:
A公司決定開發(fā)一套動物系統(tǒng),其中包含很多的動物,公司決定要實現(xiàn)每個動物的喊叫行為……
說到這里,我們一般就是各個程序員拿到自己要實現(xiàn)的動物類之后就開始大刀闊斧的開干了?。。?br />
X程序員實現(xiàn)狗這個類,他寫一個叫喊方法void Han(){……}
Y程序員實現(xiàn)貓這個類,他寫一個叫喊方法void Shout(){……}
M程序員實現(xiàn)豬這個類,他寫一個叫喊方法 void Shout(string content){……}
………………
好了,現(xiàn)在都完成了各自需要完成的動物,隔壁老王開始來實現(xiàn)百獸齊鳴!?。?!&¥%¥*%¥¥%¥一頓粗口爆出!這要怎么寫?一個個去調(diào)用???
來看看,X程序員英語不太好,也沒有過多的去管,只是寫出動物叫喊的方法,Y程序員和M程序員寫的叫喊方法名稱是一樣,但M程序員中還要傳遞動物叫喊的內(nèi)容?。。。?!
隔壁老王現(xiàn)在要讓所有動物都叫一遍就得一個動物一個動物的去調(diào)用方法……
OK,接下來開會商量,隔壁老王定義一個動物接口,所有的動物類都得繼承這個接口,這個接口只定義一個void Shout(); (就不過多的寫東西啦,偷偷懶)
X,Y,M程序員繼承后,X,M立馬就發(fā)現(xiàn)有問題,然后開始改了自己手中的類
這時老王就開始來百獸齊鳴啦!哈哈哈哈哈
接下來貼出代碼大家看
接口
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterfaceProject
{
/// <summary>
/// 動物接口
/// </summary>
interface IAnimal
{
/// <summary>
/// 動物叫喊
/// </summary>
void Shout();
}
}
狗
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterfaceProject
{
/// <summary>
/// 狗
/// </summary>
public class Dog:IAnimal
{
public void Shout()
{
Console.WriteLine("汪汪汪");
}
}
}
貓
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterfaceProject
{
/// <summary>
/// 貓
/// </summary>
public class Cat:IAnimal
{
public void Shout()
{
Console.WriteLine("喵喵喵");
}
}
}
豬
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterfaceProject
{
/// <summary>
/// 豬
/// </summary>
public class Pig:IAnimal
{
public void Shout()
{
Console.WriteLine("豬怎么叫來著??豬叫");
}
}
}
隔壁老王來實現(xiàn)百獸齊鳴(打倒老王這種人物的存在)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterfaceProject
{
class Program
{
static void Main(string[] args)
{
//百獸齊鳴(這里可以使用反射來初始化所有繼承IAnimal的所有動物,我就不寫這個了,主要看接口)
List<IAnimal> animals = new List<IAnimal>();
IAnimal dog = new Dog();
animals.Add(dog);
IAnimal cat = new Cat();
animals.Add(cat);
IAnimal pig = new Pig();
animals.Add(pig);
//所有動物都叫一遍
for (int i = 0; i < animals.Count; i++)
{
animals[i].Shout();
}
}
}
}
我對這個接口的粗略見解就說完啦!接口這個東西雖然用起來很簡單,但我們還是要理解這個接口的作用,希望我的這篇文章能夠讓更多像我一樣的新手向接口這個東西邁出第一步。
上一篇:C#實現(xiàn)Ruby的負(fù)數(shù)索引器
欄 目:C#教程
下一篇:C#環(huán)形緩沖區(qū)(隊列)完全實現(xiàn)
本文標(biāo)題:聊一聊C#接口問題 新手速來圍觀
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/6313.html
您可能感興趣的文章


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機閱讀
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法


