淺談C#設(shè)計模式之開放封閉原則
在軟件設(shè)計模式證這種不能修改,但可以擴展的思想也是最重要的設(shè)計原則,他就是開放-封閉原則 (OCP)
對于程序設(shè)計而言,怎么的設(shè)計才能面對需求的改變卻可以保持相對的穩(wěn)定,從而可以使得系統(tǒng)可以再第一個版本的基礎(chǔ)上不斷的推出新版本呢?
答案是在程序設(shè)計的時候使用開放封閉原則。
但是設(shè)計的同時,絕對對修改的關(guān)閉是不可能的,無論模塊是多么的封閉,都存在一些無法對之封閉的變化,既然不可以完全的封閉,設(shè)計人員必須對他設(shè)計的模塊應(yīng)該對哪種變換的封閉做出選擇,他必須猜測出最有可能發(fā)生變換的種類,然后構(gòu)造抽象來隔離那些變化。
再我們最初寫代碼的時候,假設(shè)變化不會發(fā)生,當(dāng)變化發(fā)生時我們就構(gòu)造抽象類來隔離變化。
當(dāng)然,不是在什么情況下應(yīng)對變化都是容易的,我們希望在開發(fā)工作展開不久就知道可能發(fā)生的變化,查處可能發(fā)生變化所等待的時間越長,要創(chuàng)建正確的抽象就越困難。
開放封閉原則是面向?qū)ο蟮暮诵乃冢裱@個原則可以帶來面向?qū)ο笏^的巨大好處,也就是可維護,可擴展,可復(fù)用,靈活性好。然而,對于應(yīng)用程序中的每個部分都刻意的抽象同樣不是一個i好主意,拒絕不成熟的抽象和抽象一樣重要。
相關(guān)文章
C#使用Jquery zTree實現(xiàn)樹狀結(jié)構(gòu)顯示 異步數(shù)據(jù)加載
這篇文章主要為大家詳細(xì)介紹了C#使用Jquery zTree實現(xiàn)樹狀結(jié)構(gòu)顯示和異步數(shù)據(jù)加載,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12C#實現(xiàn)過濾html標(biāo)簽并保留a標(biāo)簽的方法
這篇文章主要介紹了C#實現(xiàn)過濾html標(biāo)簽并保留a標(biāo)簽的方法,文中的自定義函數(shù)采用正則過濾實現(xiàn)了該功能,是非常實用的技巧,需要的朋友可以參考下2014-09-09