封裝,繼承,多態(tài)
封裝
類,封裝了數(shù)據(jù)(屬性)和行為(方法)
狹義的封裝:就是創(chuàng)建一個(gè)類,屬性私有化,提供getter和setter方法,并且提供一個(gè)無參的構(gòu)造方法(標(biāo)準(zhǔn)的javabean)
廣義的封裝:
比如一個(gè)Random類提供了一個(gè)獲取隨機(jī)數(shù)的方法,
比如,一個(gè)封裝了工具類的jar包,內(nèi)部的工具類實(shí)現(xiàn)細(xì)節(jié)對(duì)使用者是透明的。
再比如,一個(gè)連接池框架,一個(gè)持久層框架,等等這些都是封裝
繼承
復(fù)用,對(duì)同一類事物的共同點(diǎn)做一個(gè)抽取
舉例:
在開發(fā)中,需要對(duì)持久層進(jìn)行操作,里面有些通用性的操作,比如常規(guī)的增刪改查,所以就可以把這塊常規(guī)操作抽取出來
于是,就是有了BaseDao,同理,有了BaseService。
我們具體業(yè)務(wù)Dao,比如UserDao只要繼承BaseDao,剩下只需要寫額外擴(kuò)展的方法即可。
多態(tài)
父類引用指向子類對(duì)象,指向不同的子類對(duì)象,就有不同的表現(xiàn)(指程序在運(yùn)行期間,表現(xiàn)出多種狀態(tài))
舉例:
IUserDao userDao;
比如在Service層,聲明的是IUserDao,那么具體由Spring容器來實(shí)現(xiàn)注入,從而實(shí)現(xiàn)解耦。
再比如,方法的參數(shù)類型,我們一般也定義為父類型,調(diào)用時(shí),傳入具體的子類對(duì)象。