这篇文章介绍了C#面向对象设计原则之开闭原则,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
开闭原则(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#面向对象设计原则之开闭原则的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持得得之家。
本文标题为:C#面向对象设计原则之开闭原则
基础教程推荐
- 一个读写csv文件的C#类 2022-11-06
- C#类和结构详解 2023-05-30
- C# List实现行转列的通用方案 2022-11-02
- C#控制台实现飞行棋小游戏 2023-04-22
- C# windows语音识别与朗读实例 2023-04-27
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- C# 调用WebService的方法 2023-03-09
- unity实现动态排行榜 2023-04-27
- ZooKeeper的安装及部署教程 2023-01-22
- winform把Office转成PDF文件 2023-06-14