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)體使用詳解,最后提供了編寫控制臺應用程序接收字符串并做相應處理的小示例,需要的朋友可以參考下2014-04-04C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼的示例代碼
區(qū)位碼是一個4位的十進制數(shù),每個區(qū)位碼都對應著一個唯一的漢字,區(qū)位碼的前兩位叫做區(qū)碼,后兩位叫做位碼,下面我們就來看看如何使用C#實現(xiàn)漢字轉(zhuǎn)區(qū)位碼吧2024-01-01