欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#面向?qū)ο笤O計原則之開閉原則

 更新時間:2022年03月07日 10:59:02   作者:.NET開發(fā)菜鳥  
這篇文章介紹了C#面向?qū)ο笤O計原則之開閉原則,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

開閉原則(OCP)

定義:對擴展開發(fā),對修改關閉。
好處:

  • 適應性和靈活性。
  • 穩(wěn)定性和延續(xù)性。
  • 可復用性與可維護性。

解釋說明:開閉原則指的是兩方面:對功能擴展開發(fā),對修改進行關閉;有時當用戶要求或需求發(fā)生變化時,我們不得不打開原來的代碼進行修改,進行功能的擴展或增加,這種設計如果應用到我們以后的項目開發(fā)中會導致嚴重的問題,這樣容易導致意外的錯誤。好的程序,應該保證在我們進行程序擴展時,不會更改以前的代碼。如何才能保證這樣的效果呢?我們在定義一個類的功能時:最好先定義他的抽象類或接口,這樣在功能擴展時,我們只需要在原來抽象類和接口的基礎上編寫新的實現(xiàn)類和子類,這樣既能擴展功能又不影響以前的功能。

示例:

定義數(shù)據(jù)庫鏈接的接口

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

namespace 開閉原則_OCP_
{
    /// <summary>
    /// 數(shù)據(jù)庫連接
    /// </summary>
    public interface IDbConnection
    {
        public DbConnection GetConnection();   
    }
}

分別定義兩個接口的實現(xiàn)類

SQL Server數(shù)據(jù)庫實現(xiàn)類:

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()
        {
            // 連接數(shù)據(jù)庫并返回
            return new SqlConnection();
        }
    }
}

Oracle數(shù)據(jù)庫實現(xiàn)類

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()
        {
            // 連接數(shù)據(jù)庫并返回
            return new OracleConnection();
        }
    }
}

如果又增加了一個數(shù)據(jù)庫,只需要在定義一個接口的實現(xiàn)類就可以。接口不會發(fā)生變化,接口的實現(xiàn)類實現(xiàn)了多樣性,這樣就實現(xiàn)了開閉原則。

代碼下載鏈接:點此下載

到此這篇關于C#面向?qū)ο笤O計原則之開閉原則的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • c#入門之枚舉和結(jié)構(gòu)體使用詳解(控制臺接收字符串以相反的方向輸出)

    c#入門之枚舉和結(jié)構(gòu)體使用詳解(控制臺接收字符串以相反的方向輸出)

    這篇文章主要介紹了c#入門之枚舉和結(jié)構(gòu)體使用詳解,最后提供了編寫控制臺應用程序接收字符串并做相應處理的小示例,需要的朋友可以參考下
    2014-04-04
  • LINQ基礎之Join和UNION子句

    LINQ基礎之Join和UNION子句

    這篇文章介紹了LINQ使用Join和UNION子句的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • c#利用Grahics進行圖片裁剪

    c#利用Grahics進行圖片裁剪

    這兩天做了一個圖片對比工具,里面要處理兩張大的圖片,所以要對圖片先進行裁剪,下面看看我的方法吧
    2013-12-12
  • C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼的示例代碼

    C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼的示例代碼

    區(qū)位碼是一個4位的十進制數(shù),每個區(qū)位碼都對應著一個唯一的漢字,區(qū)位碼的前兩位叫做區(qū)碼,后兩位叫做位碼,下面我們就來看看如何使用C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼吧
    2024-01-01
  • C#實現(xiàn)TCP連接信息統(tǒng)計的方法

    C#實現(xiàn)TCP連接信息統(tǒng)計的方法

    這篇文章主要介紹了C#實現(xiàn)TCP連接信息統(tǒng)計的方法,可實現(xiàn)有效獲取TCP連接信息及連接狀態(tài)的功能,需要的朋友可以參考下
    2015-07-07
  • 淺析C#的復制和克隆

    淺析C#的復制和克隆

    這篇文章主要介紹了淺析C#的復制和克隆,需要的朋友可以參考下
    2014-07-07
  • 少見的C# RSA算法

    少見的C# RSA算法

    這篇文章主要介紹了非常少見的C# RSA算法,文章簡單易懂,實例代碼幫助大家更好的學習,感興趣的朋友可以了解下
    2020-06-06
  • c#使用資源文件的示例

    c#使用資源文件的示例

    對于資源文件的使用,說白點就是通過強制類型轉(zhuǎn)換,將資源文件里的數(shù)據(jù)強行的轉(zhuǎn)換成你需要的,換種方式說,就是你原來存進去什么,就用什么類型拿出來,下面我們學習一下c#使用資源文件的方法
    2014-01-01
  • C#批量更新sql實例

    C#批量更新sql實例

    這篇文章主要介紹了C#批量更新sql的方法,詳細講述了其實現(xiàn)步驟與對應的核心代碼,非常實用,需要的朋友可以參考下
    2014-10-10
  • C#實現(xiàn)的XML操作類實例

    C#實現(xiàn)的XML操作類實例

    這篇文章主要介紹了C#實現(xiàn)的XML操作類,涉及C#操作XML文件的讀取、插入、修改、刪除等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08

最新評論