通過反射呼叫介面的方法

2021-10-10 04:12:37 字數 1516 閱讀 1975

之前使用公司的框架,業務使用到的一般就是action→serviceimpl→business模式,其中業務邏輯主要寫在businsess中,這個裡面有一段和常用但是一直不知道原理是什麼,就是下面這段;

user user = this.getdao().getbean(userdao.class).selectuserbyuserid(20201031001l);

幾乎每天都在用但一直沒有仔細去理解為什麼這麼做。今天在寫自己的小專案遇到乙個問題,剛好就和這個有關,然後就去看了一下。

我自己寫的小專案的後端框架採用的是springmvc,在設計的時候剛開始是前台請求controller,controller請求service,在service的實現類裡面也後台與資料庫互動的邏輯,但是發現這樣寫所有的後端邏輯都集中到了serivceimpl類中,所以就想著像公司框架那樣在做個業務層專門用來寫業務邏輯。

結構如下:

serviece實現類**如下:

business**如下:

2.1 建立業務抽象類abstractbusiness

public

abstract

class

abstractbusiness()

public

final

(class

t)}

@component

public

class

beanhelper

implements

public

t getbean

(class

t)public object getspringbean

(string s)

}

2.3 修改business類
public

class

loginbusiness

extends

abstractbusiness

user user =

this.(

).getbean

class).

selectuserbyuserid

(20201031001l)

;return user;

}}

2.4 修改serviceimpl類
@service

public

class

loginserviceimpl

implements

loginservice

}

java通過反射呼叫方法

業務中有個場景是這樣的,根據傳入不同的值生成不同的訊息體。這個時候如果用switch或ifelse的話那每一層 都很多,而且不利於維護。於是想到乙個方法,根據傳入的引數呼叫不同的方法 引數即方法 這樣便於維護也利於 的健壯性。如下 示例 先獲取方法,type方法名,this.getclass 引數型...

unity通過反射呼叫方法

using system.reflection using system 1.load 命名空間名稱 gettype 命名空間.類名 type type classname.gettype 需要呼叫的方法名稱 methodinfo method type.getmethod methodfunc 3...

C 通過反射呼叫方法

用反射呼叫方法 常用於軟體架構中 假如你定義好了基類和介面,其他人使用基類派生出新的方法,你在不知道有多少類會使用此基類派生,但是你需要呼叫所有的派生類的方法時,就可以這樣,直接遍歷相同命名空間中的由基類派生的所有類,然後例項化所有類,呼叫所有方法 using system using system...