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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

大数据WEB阶段(十四)JavaEE开发模式

發(fā)布時(shí)間:2024/4/30 java 86 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据WEB阶段(十四)JavaEE开发模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JavaEE開發(fā)模式

零、目錄

  • 開發(fā)模式發(fā)展歷程
  • MVC設(shè)計(jì)思想的出現(xiàn)
  • JavaEE經(jīng)典三層架構(gòu)
  • 經(jīng)典三層架構(gòu)解耦

一、開發(fā)模式發(fā)展歷程

  • Servlet是JavaEE開發(fā)中一種動(dòng)態(tài)web資源開發(fā)技術(shù) , 但是在做輸出響應(yīng)頁(yè)面時(shí)及其繁瑣 。
  • JSP表面看上去像是Html , 但本質(zhì)上是Servlet ,可以在其中插入java代碼 , 所以也是一種動(dòng)態(tài)web資源 , 他能更好的用于展示頁(yè)面 , 也能處理一些業(yè)務(wù)邏輯 。
  • JavaEE開發(fā)模式一: JSP+JavaBean
  • JavaEE開發(fā)模式二: Servlet+JSP+JavaBean
  • 二、MVC思想的出現(xiàn)

  • 在開發(fā)模式的發(fā)展中 , 一些人總結(jié)出軟件可以人為地分為Model 、 View 、 Controller三部分 , 也就是MVC設(shè)計(jì)模式的出現(xiàn) 。
  • MVC設(shè)計(jì)模式要求這三部分盡量獨(dú)立開來(lái) , 互不干擾 , 這樣使程序結(jié)構(gòu)清晰 ,便于開發(fā)和維護(hù)
  • 三、JavaEE的經(jīng)典三層架構(gòu)

  • 開發(fā)者將MVC設(shè)計(jì)思想融入了JavaEE開發(fā)模式中 ,由此衍生出了JavaEE開發(fā)的經(jīng)典三層架構(gòu) 。 將JavaEE的開發(fā)過(guò)程分為web層 、 service層 、 dao層 三層。
  • 分層的優(yōu)勢(shì):
  • 分層 的目的在于代碼更具有優(yōu)良的結(jié)構(gòu) , 便于開發(fā)和維護(hù) 。
  • 便于層與層之間實(shí)現(xiàn)代碼的復(fù)用 , 減少代碼的冗余 。
  • 在更改某一模塊時(shí)可以不影響其他模塊的使用 , 實(shí)現(xiàn)模塊的復(fù)用 。
  • 如:需要將底層的數(shù)據(jù)庫(kù)換為Orcal時(shí), 不需要 更改Web層和Service層 。
  • 為了實(shí)現(xiàn)第三個(gè)分層的優(yōu)點(diǎn) , 三層架構(gòu)要求 , 層與層之間盡量的獨(dú)立 , 不要胡亂傳遞某一層特有的對(duì)象 , 例如不要將web層特有的對(duì)象傳遞到 其它層 , 以為一旦這樣做 ,這些某一層特有的對(duì)象就侵入到了其它層 , 一旦要替換這一層時(shí) , 不可避免的跟著修改其它層 , 這種情況稱之為層與層之間發(fā)生了耦合 。
  • 四、三層架構(gòu)解耦

  • 層與層之間的耦合是有害的 , 應(yīng)該盡量避免或消除 , 解決 這些耦合的過(guò)程稱之為解耦 。 最終希望實(shí)現(xiàn)高內(nèi)聚 、 低耦合的狀態(tài)(提高模塊內(nèi)的利用率, 降低模塊之間的依賴性) 。
  • 解耦的實(shí)現(xiàn):

  • 不要胡亂傳遞某一層所特有的對(duì)象
  • 但是再小心 , 層與層之間也必須要存在著某種關(guān)系才能成為一個(gè)整體的應(yīng)用 , 這些耦合是無(wú)法避免的 。 所以要把這些耦合管理起來(lái) , 把這些耦合控制在可控的范圍內(nèi) 。
  • 接口+配置文件+工廠設(shè)計(jì)模式實(shí)現(xiàn)層與層之間的解耦:

  • 案例:

    1. servlet中與要實(shí)現(xiàn)的用戶業(yè)務(wù)邏輯 未解耦之前: 在Servlet中:Userservice us = new UserServiceImpl();//需要指定實(shí)例化具體的哪一個(gè)對(duì)象 , 產(chǎn)生了耦合(Uservice是接口) 解耦之后: UserService us = BaseFactory.getFactory().getInstance(UserService.class);//并沒有指定具體的對(duì)象 , 而是由工廠類從配置文件中讀取配置具體的實(shí)現(xiàn)類 ,沒有耦合 2. 配置文件config.properties中的內(nèi)容:UserService=com.tj.service.UserServiceImpl.java 3. 工廠類實(shí)現(xiàn):public class BaseFactory {private static BaseFactory base = new BaseFactory();private static Properties prop = new Properties();static{try {String path = BaseFactory.class.getClassLoader().getResouce("config.properties").getPath();prop.load(new FileInputStream(path));} catch (Exception e) {e.printStackTrace();}}private BaseFactory(){}public static BaseFactory getBase(){return base;}public <T>T getInstance(Class<T> clz) throws InstantiationException, IllegalAccessException, ClassNotFoundException{//讀取配置文件中的屬性String name= prop.getProperty(clz.getSimpleName());return (T) Class.forName(name).newInstance();} }
  • 總結(jié)

    以上是生活随笔為你收集整理的大数据WEB阶段(十四)JavaEE开发模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。