iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#面向对象设计原则之开闭原则
  • 422
分享到

C#面向对象设计原则之开闭原则

2024-04-02 19:04:59 422人浏览 八月长安
摘要

开闭原则(OCP) 定义:对扩展开发,对修改关闭。好处: 适应性和灵活性。稳定性和延续性。可复用性与可维护性。 解释说明:开闭原则指的是两方面:对功能扩展开发,对修改进行关闭;有时当

开闭原则(OCP)

定义:对扩展开发,对修改关闭。
好处:

  • 适应性和灵活性。
  • 稳定性和延续性。
  • 可复用性与可维护性。

解释说明:开闭原则指的是两方面:对功能扩展开发,对修改进行关闭;有时当用户要求或需求发生变化时,我们不得不打开原来的代码进行修改,进行功能的扩展或增加,这种设计如果应用到我们以后的项目开发中会导致严重的问题,这样容易导致意外的错误。好的程序,应该保证在我们进行程序扩展时,不会更改以前的代码。如何才能保证这样的效果呢?我们在定义一个类的功能时:最好先定义他的抽象类或接口,这样在功能扩展时,我们只需要在原来抽象类和接口的基础上编写新的实现类和子类,这样既能扩展功能又不影响以前的功能。

示例:

定义数据库链接的接口

using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 开闭原则_OCP_
{
    /// <summary>
    /// 数据库连接
    /// </summary>
    public interface IDbConnection
    {
        public DbConnection GetConnection();   
    }
}

分别定义两个接口的实现类

SQL Server数据库实现类:

using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.sqlClient;

namespace 开闭原则_OCP_
{
    public class SqlServerDbConnection :IDbConnection
    {
        public DbConnection GetConnection()
        {
            // 连接数据库并返回
            return new SqlConnection();
        }
    }
}

oracle数据库实现类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.OracleClient;
using System.Data.Common;
using System.Data.OracleClient;

namespace 开闭原则_OCP_
{
   public  class OracleDbConnection:IDbConnection
    {
        public DbConnection GetConnection()
        {
            // 连接数据库并返回
            return new OracleConnection();
        }
    }
}

如果又增加了一个数据库,只需要在定义一个接口的实现类就可以。接口不会发生变化,接口的实现类实现了多样性,这样就实现了开闭原则。

代码下载链接:点此下载

到此这篇关于C#面向对象设计原则之开闭原则的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#面向对象设计原则之开闭原则

本文链接: https://www.lsjlt.com/news/141073.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#面向对象设计原则之开闭原则
    开闭原则(OCP) 定义:对扩展开发,对修改关闭。好处: 适应性和灵活性。稳定性和延续性。可复用性与可维护性。 解释说明:开闭原则指的是两方面:对功能扩展开发,对修改进行关闭;有时当...
    99+
    2024-04-02
  • java面向对象设计原则之开闭原则示例解析
    概念 唯一不变的是不断的变化,在软件开发中应该对需求的变化持开放态度,我们要做的就是如何将这种变化对我们现有的成果带来最小的冲击。开闭原则直接面对面向对象程序的目标扩展性和可维护性,...
    99+
    2024-04-02
  • C#面向对象设计原则之接口隔离原则
    接口隔离原则(ISP) 定义:使用多个专门的接口比使用单一的总接口要好。即不要把鸡蛋都放到一个篮子里。好处:比较灵活、方便,不想实现的或不用实现的可以不实现。解释说明:大部分人都喜欢...
    99+
    2024-04-02
  • C#面向对象设计原则之单一职责原则
    单一职责原则(SRP) 定义:系统中的每一个类都应该只有一个职责。 好处:高内聚、低耦合。 解释说明: 单一职责也就是说我们应该让一个类或一个对象只做一件事情,每个类所要关注的就是自...
    99+
    2024-04-02
  • C#面向对象设计原则之里氏替换原则
    里氏替换原则(LSP) 定义:在任何父类出现的地方都可以用它的子类类替换,且不影响功能。解释说明:其实LSP是对开闭原则的一个扩展,在OO思想中,我们知道对象是由一系列的状态和行为组...
    99+
    2024-04-02
  • C#面向对象设计原则之组合/聚合复用原则
    组合/聚合复用原则(LSP) 定义:优先使用组合,使系统更灵活,其次才考虑继承,达到复用的目的。重用的方式:继承、组合、聚合解释说明: 继承:在我们想复用代码时,我们一般会优先想到继...
    99+
    2024-04-02
  • 六大设计原则之开闭原则
    定义: 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来: 在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也...
    99+
    2024-04-02
  • java面向对象设计原则之合成复用原则示例详解
    目录概念示例拓展概念 尽量使用合成/聚合,而不是使用继承实现复用。所谓的合成/聚合是指一个对象里持有另外一个类的对象,通过调用这些对象的方法得到复用已有功能的目的。如:报文解译程序中...
    99+
    2024-04-02
  • java面向对象设计原则之接口隔离原则示例详解
    目录概念实现拓展概念 小接口原则,即每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。如下图所示定义了一个接口,包含了5个方法,实现类A用到了3个方法、实现类B用...
    99+
    2024-04-02
  • Java面向对象设计原则之迪米特法则介绍
    目录一、迪米特法则的定义二、迪米特法则的含义三、总结一、迪米特法则的定义 迪米特法则,也称为最少知识原则,虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。通俗...
    99+
    2023-02-14
    Java迪米特法则 Java设计原则
  • python面向对象编程设计原则之单一职责原则详解
    目录一,封装(一)什么是封装(二)封装与访问(三)私有化与访问控制1,属性与方法的私有化2,变量名压缩3,方法重载(四)属性引用:getter、setter 与 property二,...
    99+
    2024-04-02
  • java面向对象设计原则之里氏替换原则示例详解
    目录概念实现拓展概念 里氏替换原则是任何基类出现的地方,子类一定可以替换它;是建立在基于抽象、多态、继承的基础复用的基石,该原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机...
    99+
    2024-04-02
  • 面向对象设计原则在C++中的体现
    c++++ 体现了 oop 原则,包括:封装:使用类将数据和方法封装在对象中。继承:允许派生类从基类继承数据和行为。多态:允许对象的行为根据其类型而改变,通过虚函数实现。 面向对象设计...
    99+
    2024-05-14
    c++ 面向对象
  • C#面向对象编程中的开闭原则是什么
    这篇“C#面向对象编程中的开闭原则是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#面向对象编程中的开闭原则是什么”文...
    99+
    2023-07-02
  • java面向对象设计原则之迪米特法则分析详解
    目录概念使用拓展概念 迪米特法则解决类与类之间耦合度问题,如果类A调用了B类的某一个方法,则这两个类就形成了一种紧耦合的方式,当B类这个方法发生变化时,一定会影响A类的执行结果。迪米...
    99+
    2024-04-02
  • 面向对象设计的OOD原则是什么
    本文小编为大家详细介绍“面向对象设计的OOD原则是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“面向对象设计的OOD原则是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。单一职责原则(SRP):一个类应当...
    99+
    2023-06-03
  • C#开发经验分享:面向对象编程与设计原则
    C#(C Sharp)是一门强大而受欢迎的面向对象编程语言,广泛应用于软件开发领域。在C#开发过程中,了解面向对象编程(OOP)的基本概念和设计原则是非常重要的。面向对象编程是一种编程范式,它将现实世界中的事物抽象为对象,并通过对象之间的交...
    99+
    2023-11-22
    面向对象 设计原则 C#开发
  • java面向对象设计原则之单一职责与依赖倒置原则详解
    目录单一职责概念 实现 拓展 依赖倒置原则概念 示例 拓展 单一职责概念 不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。交杂不清的职责将使...
    99+
    2024-04-02
  • C#面向对象编程中开闭原则的示例详解
    目录开闭原则C# 示例改进总结在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特&mi...
    99+
    2024-04-02
  • PHP面向对象编程:设计原则与规范
    oop 设计原则和规范有助于构建可维护和可扩展的 php 代码。遵循的原则包括:单一职责原则 (srp):每个类负责一项任务。开放-封闭原则 (ocp):可扩展而无需修改。里氏替换原则 ...
    99+
    2024-05-11
    php 面向对象编程 php面向对象编程 lsp
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作