最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

開閉原則(OCP)

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

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

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

代碼下載鏈接:點此下載

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

相關(guān)文章

最新評論

申扎县| 麻阳| 武强县| 滦平县| 云南省| 禄丰县| 伊春市| 滕州市| 巢湖市| 崇信县| 清水河县| 万宁市| 西盟| 沙田区| 津市市| 淳安县| 宜宾县| 宜丰县| 松江区| 德州市| 台北市| 阿图什市| 和硕县| 峡江县| 中牟县| 桃江县| 新和县| 新沂市| 西峡县| 沾益县| 天祝| 墨脱县| 集安市| 张家口市| 平遥县| 双江| 宜宾市| 株洲县| 峨眉山市| 台东市| 顺义区|