日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件设计原则——开闭原则

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件设计原则——开闭原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開閉原則

對擴展開放,對修改關閉。

在程序需要進行拓展的時候,不能去修改原有的代碼,實現一個熱插拔的效果。簡言之,是為了使程序的擴展性好,易于維護和升級。

想要達到這樣的效果,我們需要使用接口和抽象類。

因為抽象靈活性好,適應性廣,只要抽象的合理,可以基本保持軟件架構的穩定。

軟件中易變的細節可以從抽象派生來的實現類來進行擴展,當軟件需要發生變化時,只需要根據需求重新派生一個實現類來擴展就可以了。

下面以 搜狗輸入法 的皮膚為例介紹開閉原則的應用。

【例】搜狗輸入法 的皮膚設計。

分析:搜狗輸入法 的皮膚是輸入法背景圖片、窗口顏色和聲音等元素的組合。用戶可以根據自己的喜愛更換自己的輸入法的皮膚,也可以從網上下載新的皮膚。這些皮膚有共同的特點,可以為其定義一個抽象類(AbstractSkin),而每個具體的皮膚(DefaultSpecificSkin和HeimaSpecificSkin)是其子類。用戶窗體可以根據需要選擇或者增加新的主題,而不需要修改原代碼,所以它是滿足開閉原則的。



AbstractSkin.java

package com.itheima.principles.demo1;/*** @version v1.0* @ClassName: AbstractSkin* @Description: 抽象皮膚類*/ public abstract class AbstractSkin {//顯示的方法public abstract void display(); }

DefaultSkin.java

package com.itheima.principles.demo1;/*** @version v1.0* @ClassName: DefaultSkin* @Description: 默認皮膚類*/ public class DefaultSkin extends AbstractSkin {public void display() {System.out.println("默認皮膚");} }

HeimaSkin.java

package com.itheima.principles.demo1;/*** @version v1.0* @ClassName: HeimaSkin* @Description: 黑馬皮膚*/ public class HeimaSkin extends AbstractSkin {public void display() {System.out.println("黑馬皮膚");} }

SougouInput.java

package com.itheima.principles.demo1;/*** @version v1.0* @ClassName: SougouInput* @Description: 搜狗輸入法* @Author: dym*/ public class SougouInput {private AbstractSkin skin;public void setSkin(AbstractSkin skin) {this.skin = skin;}public void display() {skin.display();} }

測試代碼

package com.itheima.principles.demo1;/*** @version v1.0* @ClassName: Client* @Description: TODO(一句話描述該類的功能)* @Author: dym*/ public class Client {public static void main(String[] args) {//1,創建搜狗輸入法對象SougouInput input = new SougouInput();//2,創建皮膚對象//DefaultSkin skin = new DefaultSkin();HeimaSkin skin = new HeimaSkin();//3,將皮膚設置到輸入法中input.setSkin(skin);//4,顯示皮膚input.display();} }

?

總結

以上是生活随笔為你收集整理的软件设计原则——开闭原则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。