C#面向對象設計原則之接口隔離原則

接口隔離原則(ISP)
  定義:使用多個專門的接口比使用單一的總接口要好。即不要把雞蛋都放到一個籃子裡。
  好處:比較靈活、方便,不想實現的或不用實現的可以不實現。
解釋說明:
  大部分人都喜歡用一個接口把需要用到的方法全部聲明出來,但是ISP建議我們使用多個專門的接口比使用單一的總接口要好,也就是一個接口裡的方法多的話,實現起來不是很方便。

示例1:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 接口隔離原則
{
    /// <summary>
    /// 定義一個學習電腦的接口
    /// </summary>
    public interface ILearnComputer
    {
    }

    /// <summary>
    /// 定義一個上網電腦的接口
    /// </summary>
    public interface INetComputer
    { }

    /// <summary>
    /// 定義一個學生電腦類,實現學習電腦的接口和上網電腦的接口
    /// </summary>
    public class StudentComputer : ILearnComputer, INetComputer
    {
        public void Learn()
        {
            Console.WriteLine("學習");
        }

        public void NetPlay()
        {
            Console.WriteLine("上網");
        }
    }
}

在上面的示例代碼中,定義瞭兩個接口,一個具體的電腦類實現瞭兩個接口。如果隻想上網,隻實現上網的接口就可以;如果隻想學習,則隻實現學習的接口就可以。

示例2:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 接口隔離原則
{
    /// <summary>
    /// 定義一個學習電腦的接口
    /// </summary>
    public interface ILearnComputer
    {
    }

    /// <summary>
    /// 定義一個上網電腦的接口
    /// </summary>
    public interface INetComputer
    { }

    /// <summary>
    /// 定義一個學生電腦的抽象類,實現學習電腦的接口和上網電腦的接口
    /// </summary>
    public abstract class StudentComputer : ILearnComputer, INetComputer
    {
        public abstract void Learn();

        public abstract void NetPlay();
    }
}

具體操作時,抽象類和接口搭配進行使用。使用抽象類實現接口,在調用的時候使用抽象類進行變量的聲明。

代碼下載鏈接:點此下載

到此這篇關於C#面向對象設計原則之接口隔離原則的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: