欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

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

时间:2022-07-14 08:18:01|栏目:.NET代码|点击:

开闭原则(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();
        }
    }
}

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

代码下载链接:点此下载

上一篇:浅析ASP.NET路由模型工作原理

栏    目:.NET代码

下一篇:C#表达式树基础教程

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

本文地址:http://www.codeinn.net/misctech/207733.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有