freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

j2ee項(xiàng)目實(shí)訓(xùn)spring框架技術(shù)——第1章應(yīng)用層spring框架技術(shù)及系統(tǒng)架構(gòu)(第1部分(文件)

 

【正文】 } public boolean doUserLogin(UserInfoVO oneUserInfo) { daoOperatorDBBean=new MySQLDAOInterfaceImple()。 UserInfoVO returnOneUserInfo= (userName, userPassWord)。 } } 從 上 面 的 代 碼 示 例 中 , 可 以 看 出 UserManagerImple 類 直 接 依 賴 于MySQLDAOInterfaceImple 類,這個(gè)依賴關(guān)系意味著當(dāng) MySQLDAOInterfaceImple類修改時(shí) 或者被替換為其它類型的 DAO 組件 , UserManagerImple類也會(huì)受到影響。 public class UserManagerImple implements UserManagerInterface { 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 15/22 頁(yè) DAOInterface daoOperatorDBBean=null。 boolean okOrNot=false。 } return okOrNot。 用工廠模式來(lái)實(shí)現(xiàn)類似 IoC效果的示例 根據(jù) GOF 設(shè)計(jì)模式中的工廠模式的編程規(guī)則,需要定義出下面的各個(gè)角色: 產(chǎn)品類的接口、產(chǎn)品類的接口的實(shí)現(xiàn)、工廠類和調(diào)用者客戶類。 import .*。 public boolean deleteOneUserInfo(int userID)。 【例 18】 工廠模式 中的 產(chǎn)品類的接口 的某個(gè)實(shí)現(xiàn)類代碼示例 package 。 public class MySQLDAOInterfaceImple implements DAOInterface { public MySQLDAOInterfaceImple() { } public boolean deleteOneUserInfo(int userID) { } public UserInfoVO getOneUserInfo(String userName, String userPassWord) { 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 17/22 頁(yè) } public boolean insertOneUserInfo(UserInfoVO oneUserInfoVO) { } public boolean updateOneUserInfo(UserInfoVO newUserInfoVO) { } } 【例 19】 工廠模式 中的 產(chǎn)品類的接口 的某個(gè)實(shí)現(xiàn)類 package 。 public class OracleDAOInterfaceImple implements DAOInterface { public OracleDAOInterfaceImple() { } public boolean deleteOneUserInfo(int userID) { } public UserInfoVO getOneUserInfo(String userName, String userPassWord) { } public boolean insertOneUserInfo(UserInfoVO oneUserInfoVO) { } public boolean updateOneUserInfo(UserInfoVO newUserInfoVO) { } } ( 3) 工廠類 的定義 下面的【例 110】中所示的 代表工廠類,利用它來(lái)創(chuàng)建出不同類型的產(chǎn)品對(duì)象,這些產(chǎn)品對(duì)象也就是客戶 端程序 對(duì)象所需要的目標(biāo)對(duì)象。 } else if (requestDAOType ==2){ return new MySQLDAOInterfaceImple()。 【例 111】 調(diào)用類 (本示例為業(yè)務(wù)層組件類) 的 代碼示例 package 。 String userName=()。 if(returnOneUserInfo==null) { okOrNot = false。 縱然 產(chǎn)品的某個(gè) 實(shí)現(xiàn)類發(fā)生變化,而調(diào)用 者的 代碼仍然可以不作修改,給維護(hù)與擴(kuò)展帶來(lái)便利 。 基于此,將本示例中所需要的各個(gè)對(duì)象實(shí)例加以定義出,請(qǐng)見(jiàn)下面的 【例 112】 中所示的配置文件的內(nèi)容。并請(qǐng)注意其中的黑體部分的代碼。 public void setDaoOperatorDBBean (DAOInterface newDaoOperatorDBBean) { daoOperatorDBBean= newDaoOperatorDBBean。 UserInfoVO returnOneUserInfo= (userName, userPassWord)。 } } 在客戶端的代碼 中, 此時(shí) 開(kāi)發(fā)者 不需要再關(guān)心所依賴的目標(biāo)對(duì)象的創(chuàng)建 的實(shí)現(xiàn)過(guò)程的細(xì)節(jié) 工作,而目標(biāo)對(duì)象的創(chuàng)建是由 Spring 框架中 IoC 容器來(lái)完成的;并且在客戶端的代碼中也沒(méi)有直接出現(xiàn)產(chǎn)品的實(shí)現(xiàn)類的名稱,從而也能夠達(dá)到工廠模式 中 的相互隔離的效果。 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 22/22 頁(yè) ( 2)采用工廠模式來(lái)實(shí)現(xiàn)時(shí)還將會(huì)有如下三個(gè) 方面 的缺點(diǎn) ? 除 非重新編譯,否則無(wú)法對(duì)“產(chǎn)品的實(shí)現(xiàn)類”進(jìn)行替換。 ? 無(wú)法透明地為不同的產(chǎn)品組件類提供多 種 不同形式的實(shí)現(xiàn) 這是開(kāi)發(fā)者在應(yīng)用工廠模式時(shí)一個(gè)比較頭疼的問(wèn)題,因?yàn)楣S模式中的工廠類要求每個(gè)產(chǎn)品組件類都必須遵從在產(chǎn)品 接口 中定義的方法和結(jié)構(gòu)特征 。 ? 無(wú)法在單例和原形之間切換產(chǎn)品對(duì)象實(shí)例產(chǎn)生的模式 在 【例 110】 中所給出的示例代碼 是實(shí)現(xiàn)返回某個(gè)產(chǎn)品實(shí)現(xiàn)類的多個(gè)實(shí)例的 功能 ,如果應(yīng)用系統(tǒng)中需要產(chǎn)生出產(chǎn)品類的一個(gè)單例( Singleton) 形式 的 對(duì)象 實(shí)例,此時(shí)開(kāi)發(fā)者必須重新修改并編譯工廠模式中的工廠類的程序代碼 。 當(dāng)然開(kāi)發(fā)者也可以在代碼的實(shí)現(xiàn)形式上為工廠類中的 creatorProduct 方法增加一個(gè)參數(shù) ,通過(guò)該參數(shù)達(dá)到對(duì)接口實(shí)現(xiàn)的不同版本進(jìn)行索引。在 Spring 框架技術(shù)誕生之前,在許多應(yīng)用項(xiàng)目中,一般是通過(guò)引入可配置化的工廠類來(lái)達(dá)到此目的。 因此,使用 Spring 框架中 IOC 能得到工廠模式同樣的效果,而且編碼更加簡(jiǎn)潔、靈活方便。 } else { okOrNot = true。 String userPassWord=()。 import .*。 當(dāng)如果需要不同的 DAO 組件對(duì)象時(shí),只需要改變配置文件中實(shí)際所引用的目標(biāo) DAO 組件對(duì)象的實(shí)例。 從而也能夠達(dá)到 隔離對(duì)象的創(chuàng)建者和對(duì)象的使用者的效果。 } return okOrNot。 boolean okOrNot=false。 public class UserManagerImple implements UserManagerInterface{ DAOInterface daoOperatorDBBean=null。 ( 4) 請(qǐng)求者(客戶端)類 下面的 【例 111】 中所示的 代表基于工廠模式的 請(qǐng)求者 ,也就是 客戶端 程序 類 , 該類向工廠類發(fā)出需要某種形式的產(chǎn)品對(duì)象的請(qǐng)求,由工廠類返回某個(gè)特定的產(chǎn)品對(duì)象實(shí)例給客戶程序。 【例 110】 工廠模式 中的 工廠類的 代碼示例 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 18/22 頁(yè) package 。 import .*。 import .*。 } ( 2) 產(chǎn)品的接口的 各個(gè) 實(shí)現(xiàn) 類定義 下 面的【例 18 】中所示的 和【例 19 】中 分別代表上面的產(chǎn)品的接口的不同的產(chǎn)品實(shí)現(xiàn)類,也就是應(yīng)用系統(tǒng)中所需要?jiǎng)?chuàng)建的各個(gè)目標(biāo)對(duì)象的類。 public interface DAOInterface { public UserInfoVO getOneUserInfo(String userName,String userPassWord)。 ( 1) 產(chǎn)品的接口 定義 下面的 【例 17】 中所示的 代碼 代表 應(yīng)用系統(tǒng)中的 DAO 接口(也就是 工廠模式 中 的 某種產(chǎn)品類的接口, 它代表 所要?jiǎng)?chuàng)建的對(duì)象應(yīng)該具有的功能要求 定義)。 為了解決這種 對(duì)象 創(chuàng)建方面 的依賴關(guān)系 ,經(jīng)典的 GoF 設(shè)計(jì) 模式 中提供了工廠( Factory) 模式,將對(duì)象的創(chuàng)建交給 工廠 模式 中的工廠 類來(lái)創(chuàng)建 。 if(returnOneUserInfo==null) { okOrNot = false。 String userName=()。 ( 2)利用接口來(lái)消除 UserManagerImple類 對(duì) MySQLDAOInterfaceImple類 的 直接依賴關(guān)系 【例 16】 利用 DAO 組件的 接口 DAOInterface 來(lái)隔離兩者之間的 依賴關(guān)系 的代碼示例,請(qǐng)讀者仍然注意其中的黑體部分的代碼 package 。 } else { okOrNot = true。 String userPassWord=()。 import .*。 利用工廠模式分離在創(chuàng)建對(duì)象方面的依賴關(guān)系 為了能夠讓讀者了解為什么要應(yīng)用工廠模式, 以及應(yīng)用 工廠模式 給應(yīng)用系統(tǒng)所帶來(lái)的效果。 Spring IOC 與工廠模式的對(duì)比 GOF 設(shè)計(jì)模式中的工廠模式也能夠達(dá)到 類似 Spring IOC 的效果
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1