網站首頁 編程語言 正文
接口隔離原則(ISP)
定義:使用多個專門的接口比使用單一的總接口要好。即不要把雞蛋都放到一個籃子里。
好處:比較靈活、方便,不想實現的或不用實現的可以不實現。
解釋說明:
大部分人都喜歡用一個接口把需要用到的方法全部聲明出來,但是ISP建議我們使用多個專門的接口比使用單一的總接口要好,也就是一個接口里的方法多的話,實現起來不是很方便。
示例1:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 接口隔離原則 { ////// 定義一個學習電腦的接口 /// public interface ILearnComputer { } ////// 定義一個上網電腦的接口 /// public interface INetComputer { } ////// 定義一個學生電腦類,實現學習電腦的接口和上網電腦的接口 /// 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 接口隔離原則 { ////// 定義一個學習電腦的接口 /// public interface ILearnComputer { } ////// 定義一個上網電腦的接口 /// public interface INetComputer { } ////// 定義一個學生電腦的抽象類,實現學習電腦的接口和上網電腦的接口 /// public abstract class StudentComputer : ILearnComputer, INetComputer { public abstract void Learn(); public abstract void NetPlay(); } }
具體操作時,抽象類和接口搭配進行使用。使用抽象類實現接口,在調用的時候使用抽象類進行變量的聲明。
代碼下載鏈接:點此下載
原文鏈接:https://www.cnblogs.com/dotnet261010/p/7351538.html
相關推薦
- 2023-12-09 出現錯誤:SLF4J: Class path contains multiple SLF4J bin
- 2022-05-20 python?列表常用方法超詳細梳理總結_python
- 2023-06-19 阿里低代碼框架lowcode-engine設置默認容器詳解_React
- 2022-11-24 React?hooks使用方法全面匯總_React
- 2022-05-07 Python中的集合一起來學習一下_python
- 2022-09-18 C++?STL反向迭代器的實現_C 語言
- 2022-09-25 Dynamic-DataSource多數據源配置mybatis/mybatis-plus
- 2022-08-10 詳細講解Swift中的類型占位符_Swift
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支