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。