C#面向?qū)ο笤O(shè)計(jì)原則之接口隔離原則
接口隔離原則(ISP)
定義:使用多個(gè)專門的接口比使用單一的總接口要好。即不要把雞蛋都放到一個(gè)籃子里。
好處:比較靈活、方便,不想實(shí)現(xiàn)的或不用實(shí)現(xiàn)的可以不實(shí)現(xiàn)。
解釋說明:
大部分人都喜歡用一個(gè)接口把需要用到的方法全部聲明出來,但是ISP建議我們使用多個(gè)專門的接口比使用單一的總接口要好,也就是一個(gè)接口里的方法多的話,實(shí)現(xiàn)起來不是很方便。
示例1:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 接口隔離原則 { /// <summary> /// 定義一個(gè)學(xué)習(xí)電腦的接口 /// </summary> public interface ILearnComputer { } /// <summary> /// 定義一個(gè)上網(wǎng)電腦的接口 /// </summary> public interface INetComputer { } /// <summary> /// 定義一個(gè)學(xué)生電腦類,實(shí)現(xiàn)學(xué)習(xí)電腦的接口和上網(wǎng)電腦的接口 /// </summary> public class StudentComputer : ILearnComputer, INetComputer { public void Learn() { Console.WriteLine("學(xué)習(xí)"); } public void NetPlay() { Console.WriteLine("上網(wǎng)"); } } }
在上面的示例代碼中,定義了兩個(gè)接口,一個(gè)具體的電腦類實(shí)現(xiàn)了兩個(gè)接口。如果只想上網(wǎng),只實(shí)現(xiàn)上網(wǎng)的接口就可以;如果只想學(xué)習(xí),則只實(shí)現(xiàn)學(xué)習(xí)的接口就可以。
示例2:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 接口隔離原則 { /// <summary> /// 定義一個(gè)學(xué)習(xí)電腦的接口 /// </summary> public interface ILearnComputer { } /// <summary> /// 定義一個(gè)上網(wǎng)電腦的接口 /// </summary> public interface INetComputer { } /// <summary> /// 定義一個(gè)學(xué)生電腦的抽象類,實(shí)現(xiàn)學(xué)習(xí)電腦的接口和上網(wǎng)電腦的接口 /// </summary> public abstract class StudentComputer : ILearnComputer, INetComputer { public abstract void Learn(); public abstract void NetPlay(); } }
具體操作時(shí),抽象類和接口搭配進(jìn)行使用。使用抽象類實(shí)現(xiàn)接口,在調(diào)用的時(shí)候使用抽象類進(jìn)行變量的聲明。
代碼下載鏈接:點(diǎn)此下載
到此這篇關(guān)于C#面向?qū)ο笤O(shè)計(jì)原則之接口隔離原則的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C#實(shí)現(xiàn)六大設(shè)計(jì)原則之依賴倒置原則
- C#面向?qū)ο笤O(shè)計(jì)原則之組合/聚合復(fù)用原則
- C#面向?qū)ο笤O(shè)計(jì)原則之里氏替換原則
- C#面向?qū)ο笤O(shè)計(jì)原則之單一職責(zé)原則
- C#面向?qū)ο笤O(shè)計(jì)原則之開閉原則
- C#實(shí)現(xiàn)六大設(shè)計(jì)原則之迪米特法則
- C#實(shí)現(xiàn)六大設(shè)計(jì)原則之接口隔離原則
- C#實(shí)現(xiàn)六大設(shè)計(jì)原則之里氏替換原則
- C#實(shí)現(xiàn)六大設(shè)計(jì)原則之單一職責(zé)原則
- 淺談C#六大設(shè)計(jì)原則
- C#編程之依賴倒置原則DIP
相關(guān)文章
C#中構(gòu)造函數(shù)和析構(gòu)函數(shù)用法實(shí)例詳解
這篇文章主要介紹了C#中構(gòu)造函數(shù)和析構(gòu)函數(shù)用法,結(jié)合實(shí)例形式詳細(xì)分析了C#中構(gòu)造函數(shù)與析構(gòu)函數(shù)的原理、定義、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-06-06C# WebService創(chuàng)建、發(fā)布、調(diào)用的實(shí)例講解
下面小編就為大家分享一篇C# WebService創(chuàng)建、發(fā)布、調(diào)用的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12automation服務(wù)器不能創(chuàng)建對(duì)象 解決方法
本文主要介紹如何解決“automation服務(wù)器不能創(chuàng)建對(duì)象”錯(cuò)誤,從而解決Visual Studio.Net不能正常使用的問題,需要的朋友可以參考下。2016-06-06C#使用Stack<T>進(jìn)行堆棧設(shè)計(jì)的實(shí)現(xiàn)
堆棧代表了一個(gè)后進(jìn)先出的對(duì)象集合,當(dāng)您需要對(duì)各項(xiàng)進(jìn)行后進(jìn)先出的訪問時(shí),則使用堆棧,本文主要介紹了C#使用Stack<T>類進(jìn)行堆棧設(shè)計(jì)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),感興趣的可以了解一下2024-03-03