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

 更新时间:2022年03月07日 10:57:47   作者:.NET开发菜鸟  
这篇文章介绍了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#面向对象设计原则之接口隔离原则的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C# 正则表达式进阶

    C# 正则表达式进阶

    这篇文章主要介绍了C# 正则表达式进阶,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 深入浅出23种设计模式

    深入浅出23种设计模式

    本文给大家详解23种设计模式,理解设计模式有助于在程序开发过程中灵活应用,需要的朋友可以参考下
    2015-08-08
  • C#设置子窗体在主窗体中居中显示解决方案

    C#设置子窗体在主窗体中居中显示解决方案

    接下来将介绍C#如何设置子窗体在主窗体中居中显示,本文提供详细的操作步骤,需要的朋友可以参考下
    2012-12-12
  • C#读取命令行参数的方法

    C#读取命令行参数的方法

    这篇文章主要介绍了C#读取命令行参数的方法,可实现读取程序输入命令行的所有参数,便于调试程序,比较简单实用,需要的朋友可以参考下
    2015-04-04
  • C#中构造函数和析构函数用法实例详解

    C#中构造函数和析构函数用法实例详解

    这篇文章主要介绍了C#中构造函数和析构函数用法,结合实例形式详细分析了C#中构造函数与析构函数的原理、定义、使用方法与相关注意事项,需要的朋友可以参考下
    2016-06-06
  • C#数字图像处理之图像二值化(彩色变黑白)的方法

    C#数字图像处理之图像二值化(彩色变黑白)的方法

    这篇文章主要介绍了C#数字图像处理之图像二值化(彩色变黑白)的方法,可实现图像从彩色转变为黑白的效果,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • WPF弹出自定义窗口的方法

    WPF弹出自定义窗口的方法

    这篇文章主要介绍了WPF弹出自定义窗口的方法,结合实例形式分析了WPF自定义窗口的创建与调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • C# WebService创建、发布、调用的实例讲解

    C# WebService创建、发布、调用的实例讲解

    下面小编就为大家分享一篇C# WebService创建、发布、调用的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • automation服务器不能创建对象 解决方法

    automation服务器不能创建对象 解决方法

    本文主要介绍如何解决“automation服务器不能创建对象”错误,从而解决Visual Studio.Net不能正常使用的问题,需要的朋友可以参考下。
    2016-06-06
  • C#使用Stack<T>进行堆栈设计的实现

    C#使用Stack<T>进行堆栈设计的实现

    堆栈代表了一个后进先出的对象集合,当您需要对各项进行后进先出的访问时,则使用堆栈,本文主要介绍了C#使用Stack<T>类进行堆栈设计的实现,文中通过示例代码介绍的非常详细,感兴趣的可以了解一下
    2024-03-03

最新评论