亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

開放-封閉原則(OCP:The Open-Closed Principle)

發布時間:2020-05-22 13:34:59 來源:網絡 閱讀:440 作者:huangmeicai 欄目:移動開發

開放-封閉原則(OCP:The Open-Closed Principle)

    開放-封閉原則:軟件實體(類,模塊,函數等等)應該是可以擴展的,但是不可修改的。

設計的目的便在于面對需求的改變而保持系統的相對穩定,從而使得系統可以很容易的從一個版本升級到另一個版本。

    大家可能都有這樣的體會,要滿足各種各樣的客戶,并且客戶的需求經常變化,程序員就是這樣的辛苦命,整天改過來改過去,特別用一些非面向對象的語言寫的代碼,函數的參數變得越來越長,里面的Case情況慢慢增加,函數變得很大。軟件幾年之后就變得難于理解和維護,軟件的生命周期好像就要終止。如果能夠擴展模塊的功能,同時又不修改原來已經測試通過的代碼,那多好啊!

  這完全是可以實現的,關鍵是抽象。把可能的變化用抽象來隔離它。面向接口編程,而不是面向對象編程,能增強程序的靈活性;如Client類調用Server類,如果我們希望Client對象使用另外一個不的Server對象,就必須修改Client中使用Server類的地方;如果Client調用Server的接口就可以避免這種修改,只要生成新的接口實現類,修改Main等初次使用新子類的地方而不需要修改Client類;使用Strategy模式和Template Method模式是滿足OCP的最常用方法。

  如果需要適應某種變化就需要對這種變化進行抽象,會增加程序的復雜度。所以設計人員應該熟悉業務和了解客戶需求,預測到需要進行抽象的變化。

  敏捷建模不建議提前進行各種假想的變化抽象,而是當變化發生第一次的時候抽象這種變化,以后同樣的變化就變得很容易。對代碼進行重構以保持良好的結構是很重要的,每次抽象都不應該使軟件變得越來越僵化。這是非面向對象的語言不具備的優勢


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

易门县| 富源县| 安丘市| 屏南县| 茶陵县| 沂水县| 屯昌县| 松滋市| 民权县| 阜康市| 浠水县| 华安县| 延长县| 池州市| 巴楚县| 靖安县| 湟中县| 慈溪市| 蒙山县| 二手房| 公安县| 永仁县| 恭城| 诸暨市| 班玛县| 克拉玛依市| 鲁甸县| 乡宁县| 襄汾县| 宣化县| 湾仔区| 平凉市| 开阳县| 江门市| 洪湖市| 郓城县| 宾阳县| 磐石市| 承德市| 麻江县| 辉南县|