服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#面向对象设计原则之接口隔离原则

C#面向对象设计原则之接口隔离原则

2023-02-16 15:00.NET开发菜鸟 C#

这篇文章介绍了C#面向对象设计原则之接口隔离原则,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

接口隔离原则(ISP)

定义:使用多个专门的接口比使用单一的总接口要好。即不要把鸡蛋都放到一个篮子里。
好处:比较灵活、方便,不想实现的或不用实现的可以不实现。
解释说明:
大部分人都喜欢用一个接口把需要用到的方法全部声明出来,但是ISP建议我们使用多个专门的接口比使用单一的总接口要好,也就是一个接口里的方法多的话,实现起来不是很方便。

示例1:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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#面向对象设计原则之接口隔离原则的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/dotnet261010/p/7351538.html

延伸 · 阅读

精彩推荐
  • C#C#利用ASP.NET Core开发学生管理系统详解

    C#利用ASP.NET Core开发学生管理系统详解

    随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP.NET Core也应运而生。本文主要利用ASP.NET Core开发一个学生管理系统,感兴趣的可以学习一...

    小六公子4602022-12-15
  • C#c#利用Session对象实现购物车的方法示例

    c#利用Session对象实现购物车的方法示例

    这篇文章主要介绍了c#利用Session对象实现购物车的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    森大科技8652022-08-24
  • C#Unity调取移动端的麦克风进行录音并播放

    Unity调取移动端的麦克风进行录音并播放

    这篇文章主要为大家详细介绍了Unity调取移动端的麦克风进行录音并播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参...

    幻世界5862022-07-27
  • C#C#编程实现自定义热键的方法

    C#编程实现自定义热键的方法

    这篇文章主要介绍了C#编程实现自定义热键的方法,涉及C#键盘按键设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    我心依旧6062021-10-22
  • C#C# 创建MDB数据库、并存放表格数据的案例

    C# 创建MDB数据库、并存放表格数据的案例

    这篇文章主要介绍了C# 创建MDB数据库、并存放表格数据的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    南方北先生11912022-10-27
  • C#C#在WinForm中使用WebKit传递js对象实现与网页交互的方法

    C#在WinForm中使用WebKit传递js对象实现与网页交互的方法

    这篇文章主要介绍了C#在WinForm中使用WebKit传递js对象实现与网页交互的方法,涉及针对WebBroswer控件及WebKit控件的相关使用技巧,需要的朋友可以参考下...

    lyflcear10072021-11-15
  • C#详解C#扩展方法原理及其使用

    详解C#扩展方法原理及其使用

    这篇文章主要介绍了C#扩展方法原理及其使用的的相关资料,文中代码非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    艾心5892022-09-19
  • C#C#实现在底图上动态生成文字和图片

    C#实现在底图上动态生成文字和图片

    这篇文章主要为大家详细介绍了C#实现在底图上动态生成文字和图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    寒冰屋10122022-07-24