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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java设计模——反射的应用 (利用反射来去除if判断语句)

發布時間:2025/5/22 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java设计模——反射的应用 (利用反射来去除if判断语句) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用反射來去除if判斷語句

?

我的以前寫的一個查分系統,就是部長讓我寫的那個,使用一個分發器(函數),他會根據傳遞進來的字符串參數調用不同的方。?Ifadd.equalsIgnoreCase(funcName))?{?return?add();}?,每增加一個方法,就需要增加一個if分支,這樣需要不斷的修改原來的代碼,需要重新編譯,容易出錯,面向對象的原則是“對修改關閉,對擴展開放”,因此我試著用另外一種方法來實現,利用“反射”。我們實現原理是:傳入的類名稱字符串,根據類名直接實例化該對象,調用內部方法。

? 1、因為每個函數都是用來執行一定的業務邏輯的(操作數據庫),因此先定義一個接口,然后定義一個service函數,這個接口的主要功能就是能實現業務函數名稱統一化,規范化,(我只要調同一個函數就可以,但類的不同函數內部實現是不一樣化),實例化對象時變量的引用使用該類型(多態),如果不這樣,那需要頻繁的修改代碼,類型不同嗎,你懂得。

1、每個相應的業務功能分別定義為一個類,并繼實現接口,并實現service函數,例如?增加人員信息為一個類,刪除人員信息為一個類,根據不同的類,函數的實現也不同,具體實現不在敘述。

2、這樣就可以將上邊的if語句去掉,利用java反射機制,只要傳入相關業務類的類名?字符串?,利用反射實例化該類,并調用service方法,就可以實現相關的業務邏輯。

使用上邊方法,如果要增加新的業務,例如:修改人員信息,只要定義新的業務類,并實現上述接口,實現servcie方法,只要傳入該類的類名,就可自動調用service方法實現業務邏輯,根本就不需要修改原來(用反射代替if判斷)的代碼了。就算刪除該業務類,也比較方邊,不使用該類即可,想反,if判斷?就需要修改代碼,刪除相關的業務分支。

如果類名比較長,傳入字符串不方便,可定義一個配置文件,key=value的形式,key是類名的別名,value是類的全路徑名,只要傳入該key值,然后利用程序去查找配置文件,找出對應的value,便可找到該類名,并利用反射實例化。

具體的反射使用方法,可參考本空間的另一篇文章,java反射。

轉載于:https://www.cnblogs.com/13188196we/p/3164929.html

總結

以上是生活随笔為你收集整理的java设计模——反射的应用 (利用反射来去除if判断语句)的全部內容,希望文章能夠幫你解決所遇到的問題。

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