面向接口編程(1)

我們先來看一段代碼:

@Autowired
    private ISzglLsjyService lsjyService;

............
    public Object getLbInfo(IQueryInfo qp) {
       //省略邏輯過程
        return lsjyService.getLsjysqJls(qp, lsjySearchExtVo);
    }

是不是很熟悉,IOC自動注入嘛,可是,爲什麼return 的時候是接口的實例去調方法呢?疑惑嗎?我也疑惑,疑惑的原因在於:接口裏面是沒有任何方法的實現的,那麼接口實例lsjyService也沒有實現方法,那爲什麼能傳參調用呢。這就離不開註解了。

註解會根據接口類生成接口類 的實例對象,我們看到的接口類方法的調用(iservice.imethod()),實際上會去找對應的接口實現類,再調用該實現類的method()方法。

前提是我們要把接口的實現類寫好(不寫實現的話會有問題)。

此時,還是有人會問,爲什麼不自動注入xxxserviceImpl實現類的對象呢,這樣子很便於理解。但基於接口編程是一種趨勢,使得代碼更加簡潔,更加突出“接口”的作用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章