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

Mercia ·
更新时间:2024-11-15
· 1922 次阅读

开闭原则(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# 对象 面向对象 设计原则

需要 登录 后方可回复, 如果你还没有账号请 注册新账号