淺談c#接口的問題,適合新手來了解

這段時間的項目有用到接口,開始不是特別理解接口,只是單單知道接口定義很是簡單,甚至以爲這個接口只是畫蛇添足(我的開發的時候)。如今開始團隊開發,才發現接口原來是這麼的重要和便捷!程序員

接下來就來談談我這段時間對接口使用的粗淺看法,說的對但願你們贊,說的有誤的地方但願你們多多包涵建議!spa

READY GO!code

接口的定義就很少說了,它有一個很重要的知識點,就是全部繼承這個接口類的都必須實現接口中的定義,說到這個必須,在團隊開發中,只要咱們商定好了接口,那咱們的代碼是否是就統一了!!!blog

這是我以爲接口重要的第一點:它便於咱們統一項目的規定,便於團隊代碼的管理!繼承

再來用一個例子說明:接口

A公司決定開發一套動物系統,其中包含不少的動物,公司決定要實現每一個動物的喊叫行爲……開發

說到這裏,咱們通常就是各個程序員拿到本身要實現的動物類以後就開始大刀闊斧的開幹了!!!string

X程序員實現狗這個類,他寫一個叫喊方法void Han(){……}it

Y程序員實現貓這個類,他寫一個叫喊方法void Shout(){……}io

M程序員實現豬這個類,他寫一個叫喊方法 void Shout(string content){……}

………………

好了,如今都完成了各自須要完成的動物,隔壁老王開始來實現百獸齊鳴!!!!&¥%¥*%¥¥%¥一頓粗口爆出!這要怎麼寫?一個個去調用???

來看看,X程序員英語不太好,也沒有過多的去管,只是寫出動物叫喊的方法,Y程序員和M程序員寫的叫喊方法名稱是同樣,但M程序員中還要傳遞動物叫喊的內容!!!!!

隔壁老王如今要讓全部動物都叫一遍就得一個動物一個動物的去調用方法……

OK,接下來開會商量,隔壁老王定義一個動物接口,全部的動物類都得繼承這個接口,這個接口只定義一個void Shout();  (就不過多的寫東西啦,偷偷懶)

X,Y,M程序員繼承後,X,M立馬就發現有問題,而後開始改了本身手中的類

這時老王就開始來百獸齊鳴啦!哈哈哈哈哈

接下來貼出代碼你們看

接口

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("豬怎麼叫來着??豬叫");
        }
    }
}

隔壁老王來實現百獸齊鳴(打倒老王這種人物的存在)

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();
            }

            
        }
    }
}

我對這個接口的粗略看法就說完啦!接口這個東西雖然用起來很簡單,但咱們仍是要理解這個接口的做用,但願個人這篇文章可以讓更多像我同樣的新手向接口這個東西邁出第一步

相關文章
相關標籤/搜索