軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第2章 典型軟件設(shè)計模式_第1頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第2章 典型軟件設(shè)計模式_第2頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第2章 典型軟件設(shè)計模式_第3頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第2章 典型軟件設(shè)計模式_第4頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第2章 典型軟件設(shè)計模式_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件架構(gòu)設(shè)計實戰(zhàn)——基于SSM框架Software

Architecture

Design

Practice

Based

on

SSM

Framework第2章典型軟件設(shè)計模式123單例模式原型模式工廠模式4建造者模式5代理模式6MVC模式單例模式

單例(Singleton)模式是指一個類只有一個實例,且該類能自行創(chuàng)建這個實例的一種軟件設(shè)計模式。例如,Windows中只能打開一個任務(wù)管理器,這樣可以避免因打開多個任務(wù)管理器窗口而造成內(nèi)存資源的浪費,或出現(xiàn)各個窗口顯示內(nèi)容的不一致等錯誤。

單例模式在現(xiàn)實生活中的應(yīng)用也非常廣泛,例如公司CEO、部門經(jīng)理等都屬于單例模型。J2EE標準中的ServletContext和ServletContextConfig、Spring框架應(yīng)用中的ApplicationContext、數(shù)據(jù)庫中的連接池等也都是單例模式。1單例模式單例模式主要具有3個特點:1.單例類只有一個實例對象;2.該單例對象必須由單例類自行創(chuàng)建;3.單例類對外提供一個訪問該單例的全局訪問點。1單例模式單例模式在應(yīng)用當(dāng)中較為方便,且生命周期管理也比較簡單,主要優(yōu)點包括以下3個方面:①

單例模式可以保證內(nèi)存里只有一個實例,減少了內(nèi)存的開銷。②

單例模式可以避免對資源的多重占用。③

單例模式設(shè)置全局訪問點,可以優(yōu)化和共享資源的訪問。1單例模式單例模式主要有以下3個方面的缺點:①

單例模式一般沒有接口,擴展困難。如果要擴展,則除了修改原來的代碼,沒有第二種途徑,違背開閉原則。②

在并發(fā)測試中,單例模式不利于代碼調(diào)試。在調(diào)試過程中,如果單例中的代碼沒有執(zhí)行完,也不能模擬生成一個新的對象。③

單例模式的功能代碼通常寫在一個類中,如果功能設(shè)計不合理,則很容易違背單一職責(zé)原則。1單例模式單例模式的應(yīng)用場景主要有以下5個方面。1.需要頻繁創(chuàng)建的一些類,使用單例模式可以降低系統(tǒng)的內(nèi)存壓力,減少垃圾回收(GarbageCollection簡稱GC)頻率。2.某個類在運行期間只能生成一個對象的時候,如SpringMVC框架中的核心控制器DispatchServlet實例。3.某些類創(chuàng)建實例時占用資源較多,或?qū)嵗臅r較長,且經(jīng)常使用,例如MyBatis框架中的SqlSessionFactory實例。4.某類需要頻繁實例化,而創(chuàng)建的對象又頻繁被銷毀的時候,如多線程的線程池、網(wǎng)絡(luò)連接池等。5.某個實例需要在應(yīng)用中被共享使用,由于單例模式只允許創(chuàng)建一個對象,共享該對象可以節(jié)省內(nèi)存,并加快對象訪問速度。如Web應(yīng)用中的配置管理對象。1單例模式單例模式的結(jié)構(gòu)在單例模式中必須由所在類來完成對象的創(chuàng)建,然后供其他類調(diào)用,一般稱之為單例類;在訪問類中通過單例類提供的靜態(tài)方法獲取單例類的實例,然后調(diào)用相應(yīng)方法。1單例模式單例模式的實現(xiàn)①懶加載單例模式publicclassLazySingleton{privatestaticvolatileLazySingletoninstance=null;//保證instance在所有線程中同步privateLazySingleton(){//private避免類在外部被實例化}publicstaticsynchronizedLazySingletongetInstance(){//getInstance方法前加同步if(instance==null){instance=newLazySingleton();}returninstance;}}1單例模式單例模式的實現(xiàn)②預(yù)加載單例模式publicclassPreSingleton{privatestaticfinalPreSingletoninstance=newPreSingleton();privatePreSingleton(){}publicstaticPreSingletongetInstance(){returninstance;}}1原型模式

在有些系統(tǒng)中,存在大量相同或相似對象的創(chuàng)建問題,如果用傳統(tǒng)的構(gòu)造函數(shù)來創(chuàng)建對象,會比較復(fù)雜且耗時耗資源,用原型模式生成對象就比較高效。

2原型模式1.原型模式的定義與特點原型(Prototype)模式是指用一個已經(jīng)創(chuàng)建好的實例作為原型,通過復(fù)制該原型對象來創(chuàng)建一個和原型相同或相似的新對象。用這種方式創(chuàng)建對象非常高效,根本無須知道對象創(chuàng)建的細節(jié)。而且Java自帶的原型模式基于內(nèi)存二進制流的復(fù)制,在性能上比直接創(chuàng)建(new)一個對象更加優(yōu)良。同時可以使用深克隆方式保存對象的狀態(tài),使用原型模式將對象復(fù)制一份,并將其狀態(tài)保存起來,簡化了創(chuàng)建對象的過程,以便在需要的時候使用(例如恢復(fù)到歷史某一狀態(tài)),可輔助實現(xiàn)撤銷操作。2原型模式2.原型模式的應(yīng)用場景(1)對象之間相同或相似,即只是個別的幾個屬性不同的時候。(2)創(chuàng)建對象成本較大,例如初始化時間長,占用CPU太多,或者占用網(wǎng)絡(luò)資源太多等,需要優(yōu)化資源。(3)創(chuàng)建一個對象需要繁瑣的數(shù)據(jù)準備或訪問權(quán)限等,需要提高性能或者提高安全性。(4)系統(tǒng)中大量使用該類對象,各個調(diào)用者都需要給它的屬性重新賦值。在Spring中,原型模式應(yīng)用的非常廣泛,例如scope=‘prototype’、JSON.parseObject()等都是原型模式的具體應(yīng)用。2原型模式3.原型模式的結(jié)構(gòu)由于Java提供了對象的clone()方法,所以用Java實現(xiàn)原型模式很簡單。原型模式包含以下3個主要角色:(1)抽象原型類:規(guī)定了具體原型對象必須實現(xiàn)的接口。(2)具體原型類:實現(xiàn)抽象原型類的clone()方法,它是可被復(fù)制的對象。(3)訪問類:使用具體原型類中的clone()方法來復(fù)制新的對象。2原型模式

2原型模式的類結(jié)構(gòu)圖原型模式4.原型模式的實現(xiàn)原型模式的克隆分為淺克隆和深克隆。淺克隆:創(chuàng)建一個新對象,新對象的屬性和原來對象完全相同,對于非基本類型屬性,仍指向原有屬性所指向的對象的內(nèi)存地址。深克?。簞?chuàng)建一個新對象,屬性中引用的其他對象也會被克隆,不再指向原有對象地址。Java中的Object類提供了淺克隆的clone()方法,具體原型類只要實現(xiàn)Cloneable接口就可實現(xiàn)對象的淺克隆,這里的Cloneable接口就是抽象原型類。2原型模式2//具體原型類classRealizetypeimplementsCloneable{Realizetype(){System.out.println("具體原型創(chuàng)建成功!");}publicObjectclone()throwsCloneNotSupportedException{System.out.println("具體原型復(fù)制成功!");return(Realizetype)super.clone();}}//原型模式的測試類publicclassPrototypeTest{@Testpublicvoidtest()throwsCloneNotSupportedException{RealizeTypeo1=newRealizeType();RealizeTypeo2=(RealizeType)o1.clone();System.out.println("o1==o2?"+(o1==o2));}}工廠模式

工廠模式在框架應(yīng)用中是最常見的軟件設(shè)計模式,例如Spring框架、Struts框架等,工廠模式主要分為3種類型:簡單工廠模式、工廠方法模式和抽象工程模式。

現(xiàn)實生活中,原始社會是自給自足,所有需要都是自己生產(chǎn)(沒有工廠),農(nóng)耕社會就存在一些小作坊、民間酒坊等(簡單工廠模式),在工業(yè)革命時代就出現(xiàn)了流水線生產(chǎn)(工廠方法模式),在現(xiàn)代產(chǎn)業(yè)鏈中就出現(xiàn)了代工廠(抽象工廠模式),一些企業(yè)只做研發(fā)和設(shè)計(例如蘋果公司等),而另外一些企業(yè)只負責(zé)生產(chǎn)(例如富士康等)。軟件項目代碼同樣是由簡到繁一步一步迭代而來的,但對于調(diào)用者來說,采用工廠模式卻是越來越簡單。

工廠模式最主要的目的就是把“對象的創(chuàng)建與使用相分離”,工廠只負責(zé)對象的創(chuàng)建,而使用者只負責(zé)調(diào)用。在工廠模式中,被創(chuàng)建的對象成為“產(chǎn)品”,把創(chuàng)建產(chǎn)品的對象成為“工廠”。33.1簡單工廠模式在應(yīng)用中,如果要創(chuàng)建的產(chǎn)品不多,只要一個工廠類就可以完成,這種模式叫“簡單工廠模式”。在簡單工廠模式中創(chuàng)建對象的方法通常為靜態(tài)(static)方法,因此簡單工廠模式(SimpleFactoryPattern)又稱為靜態(tài)工廠方法模式(StaticFactoryMethodPattern)。3.1簡單工廠模式1.簡單工廠模式的優(yōu)點:①在工廠類中包含了必要的邏輯判斷,可以決定在什么時候創(chuàng)建哪一個產(chǎn)品的實例。調(diào)用者可以很方便的創(chuàng)建出相應(yīng)的產(chǎn)品。工廠和產(chǎn)品的職責(zé)區(qū)分明確;②調(diào)用者無需知道所創(chuàng)建具體產(chǎn)品的類名,只需知道相應(yīng)參數(shù)即可;③也可以引入配置文件,在不修改調(diào)用者代碼的情況下更換和添加新的具體產(chǎn)品類。3.1簡單工廠模式2.簡單工廠模式的缺點:①簡單工廠模式的工廠類單一,負責(zé)所有產(chǎn)品的創(chuàng)建,職責(zé)過重,一旦異常,整個系統(tǒng)將受影響,且工廠類代碼會非常臃腫,違背高聚合原則;②使用簡單工廠模式會增加系統(tǒng)中類的個數(shù)(引入新的工廠類),增加系統(tǒng)的復(fù)雜度和理解難度;③系統(tǒng)擴展困難,一旦增加新產(chǎn)品不得不修改工廠邏輯,在產(chǎn)品類型較多時,可能造成邏輯過于復(fù)雜;④簡單工廠模式使用了static工廠方法,造成工廠角色無法形成基于繼承的等級結(jié)構(gòu)。3.1簡單工廠模式簡單工廠模式的類結(jié)構(gòu)圖3.2工廠方法模式

簡單工廠模式每增加一個產(chǎn)品就要增加一個具體產(chǎn)品類和一個對應(yīng)的具體工廠類,這增加了系統(tǒng)的復(fù)雜度,違背了“開閉原則”。工廠方法模式是對“工廠”做進一步的抽象,得到抽象工廠,然后由具體工廠實現(xiàn)抽象工廠并負責(zé)某一產(chǎn)品的生產(chǎn)。工廠方法模式可以使系統(tǒng)在不修改原來代碼的情況下引進新的產(chǎn)品,即滿足開閉原則。3.2工廠方法模式工廠方法模式的優(yōu)點:①用戶只需要知道具體工廠的名稱就可得到所要的產(chǎn)品,無須知道產(chǎn)品的具體創(chuàng)建過程;②靈活性增強,對于新產(chǎn)品的創(chuàng)建,只需多寫一個相應(yīng)的工廠類;③典型的解耦框架,在應(yīng)用當(dāng)中較為常見,高層模塊只需要知道產(chǎn)品的抽象類,無須關(guān)心其具體實現(xiàn)類,滿足迪米特法則、依賴倒置原則和里氏替換原則。3.2工廠方法模式工廠方法模式的缺點:①類的個數(shù)容易過多,增加了復(fù)雜度;②增加了系統(tǒng)的抽象性和理解的難度;3.2工廠方法模式工廠方法模式的結(jié)構(gòu)與實現(xiàn)工廠方法模式由抽象工廠、具體工廠、抽象產(chǎn)品和具體產(chǎn)品等4個要素構(gòu)成。①抽象工廠(AbstractFactory):提供了創(chuàng)建產(chǎn)品的接口,調(diào)用者通過它訪問具體工廠的工廠方法來創(chuàng)建產(chǎn)品;②具體工廠(SpecificFactory):主要是實現(xiàn)抽象工廠中的抽象方法,完成具體產(chǎn)品的創(chuàng)建;③抽象產(chǎn)品(AbstractProduct):定義了產(chǎn)品的規(guī)范,描述了產(chǎn)品的主要特性和功能;④具體產(chǎn)品(Product):實現(xiàn)了抽象產(chǎn)品角色所定義的接口,由具體工廠來創(chuàng)建,它同具體工廠之間一一對應(yīng)。3.2工廠方法模式工廠方法模式的類結(jié)構(gòu)圖3.2工廠方法模式在工廠方法模式中,具體生產(chǎn)哪種產(chǎn)品,一般是配置在XML文件中的,例如:Spring、SpringMVC、MyBatis等,代碼示例如下所示。<?xmlversion="1.0"encoding="UTF-8"?><config><className>SpecificFactory1</className></config>3.3抽象工廠模式抽象工廠模式就是要考慮多等級產(chǎn)品的生產(chǎn),即一個工廠可以生產(chǎn)多個等級的產(chǎn)品,例如A電器廠既可以生產(chǎn)電視機還可以生產(chǎn)空調(diào),這里稱之為一個產(chǎn)品族;同一個等級的產(chǎn)品又可以由不同的生產(chǎn)商來生產(chǎn),例如:空調(diào)有A工廠生產(chǎn)的還有B工廠生產(chǎn)的,這里稱之為一個產(chǎn)品等級。33.3抽象工廠模式使用抽象工廠模式一般要滿足以下條件:(1)系統(tǒng)中有多個產(chǎn)品族,每個具體工廠創(chuàng)建同一族但屬于不同等級結(jié)構(gòu)的產(chǎn)品。(2)系統(tǒng)一次只可能消費其中某一族產(chǎn)品,即同族的產(chǎn)品可以一起使用。33.3抽象工廠模式抽象工廠模式除了具有工廠方法模式的優(yōu)點外,還具有以下優(yōu)點:(1)可以在類的內(nèi)部對產(chǎn)品族中相關(guān)聯(lián)的多等級產(chǎn)品共同管理,而不必專門引入多個新的類來進行管理。(2)當(dāng)需要產(chǎn)品族時,抽象工廠可以保證客戶端始終只使用同一個產(chǎn)品的產(chǎn)品族。(3)抽象工廠增強了程序的可擴展性,當(dāng)增加一個新的產(chǎn)品族時,不需要修改原代碼,更好滿足開閉原則。其缺點是:當(dāng)產(chǎn)品族中需要增加一個新的產(chǎn)品時,所有的工廠類都需要進行修改。增加了系統(tǒng)的抽象性和理解難度。33.3抽象工廠模式抽象工廠模式的4個要素如下:①抽象工廠(AbstractFactory):提供了創(chuàng)建產(chǎn)品的接口,它包含多個創(chuàng)建產(chǎn)品的方法,可以創(chuàng)建多個不同等級的產(chǎn)品。②具體工廠(SpecificFactory):主要是實現(xiàn)抽象工廠中的多個抽象方法,完成具體產(chǎn)品的創(chuàng)建。③抽象產(chǎn)品(AbstractProduct):定義了產(chǎn)品的規(guī)范,描述了產(chǎn)品的主要特性和功能,抽象工廠模式有多個抽象產(chǎn)品。④具體產(chǎn)品(Product):實現(xiàn)了抽象產(chǎn)品接口所定義的方法,由具體工廠來創(chuàng)建,它同具體工廠之間是多對一的關(guān)系。33.3抽象工廠模式3抽象工廠模式的類結(jié)構(gòu)圖3.3抽象工廠模式抽象工廠模式的實現(xiàn)①抽象工廠:提供了產(chǎn)品的生成方法,其主要代碼如下所示:interfaceAbstractFactory{publicAbstractProduct1getProduct1();publicAbstractProduct2getProduct2();}②具體工廠:實現(xiàn)了產(chǎn)品的生成方法,其主要代碼如下所示:classSpecificFactory1implementsAbstractFactory{publicProduct1getProduct1(){System.out.println("具體工廠1生成-->具體產(chǎn)品11...");returnnewProduct11();}publicProduct2getProduct2(){System.out.println("具體工廠2生成-->具體產(chǎn)品21...");returnnewProduct21();}}3課程思政工廠模式的思想來源于社會生產(chǎn)勞動的大分工,工廠是工業(yè)生產(chǎn)的基礎(chǔ),通過工廠的工業(yè)化生產(chǎn),極大地豐富了人們的物質(zhì)生活,提供了勞動效率,促進了社會進步和科學(xué)技術(shù)發(fā)展。中國早已成為世界工廠,中國制造享譽全球,中國離不開世界,世界也離不開中國。近年來,隨著中國科技突飛猛進的發(fā)展,中國制造正在轉(zhuǎn)向中國智造,傳統(tǒng)的工廠正在轉(zhuǎn)變?yōu)橹悄芑S、無人化工廠,這將更好的推動工業(yè)化生產(chǎn),也必將促進中國社會更好的發(fā)展,對于我國的軟件產(chǎn)業(yè)而言,這或許是一個難得的發(fā)展機遇。請大家堅定理想信念,相信隨著國產(chǎn)替代的不斷深入,卡脖子問題將逐步解決,我國的軟件產(chǎn)業(yè)一定會大有前途!3建造者模式1.建造者模式的特點建造者模式指將一個復(fù)雜對象的構(gòu)造與它的表示相分離,使同樣的構(gòu)建過程可以創(chuàng)建不同的表示,這樣的設(shè)計模式被稱為建造者模式。它是將一個復(fù)雜的對象分解為多個簡單的對象,然后一步一步構(gòu)建而成。它將變與不變相分離,即產(chǎn)品的組成部分是不變的,但每一部分是可以靈活選擇的。4建造者模式建造者模式主要有以下3個方面的優(yōu)點:(1)封裝性好,構(gòu)建和表示相分離;(2)擴展性好,各個具體的建造者相互獨立,有利于系統(tǒng)的解耦;(3)客戶端不必知道產(chǎn)品內(nèi)部組成細節(jié),建造者可以對創(chuàng)建過程逐步細化,而不對其它模塊產(chǎn)生任何影響,便于控制細節(jié)風(fēng)險。4建造者模式建造者模式也有以下2個方面的缺點:(1)產(chǎn)品的組成部分必須相同,這限制了其使用范圍。(2)如果產(chǎn)品的內(nèi)部變化復(fù)雜,則建造者也要同步修改,后期維護成本較大。建造者模式和工廠模式的關(guān)注點不同:建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的創(chuàng)建過程,但兩者可以結(jié)合使用。4建造者模式建造者模式由產(chǎn)品、抽象建造者、具體建造者、指揮者等4個要素構(gòu)成。①產(chǎn)品(Product):它是包含多個組成部件的復(fù)雜對象,由具體建造者來創(chuàng)建其各個零部件。②抽象建造者(AbstractBuilder):它是一個包含創(chuàng)建產(chǎn)品各個子部件的抽象方法的接口,通常還包含一個返回復(fù)雜產(chǎn)品的方法。③具體建造者(ConcreteBuilder):實現(xiàn)Builder接口,完成復(fù)雜產(chǎn)品的各個部件的具體創(chuàng)建方法。④指揮者(Director):它調(diào)用建造者對象中的部件構(gòu)造與裝配方法完成復(fù)雜對象的創(chuàng)建,在指揮者中不涉及具體產(chǎn)品的信息。4建造者模式4建造者模式的類結(jié)構(gòu)圖建造者模式建造者模式主要適用于以下應(yīng)用場景:(1)相同的方法,不同的執(zhí)行順序,產(chǎn)生不同的結(jié)果;(2)多個部件或零件,都可以裝配到一個對象中,但是產(chǎn)生的結(jié)果又不相同;(3)產(chǎn)品類非常復(fù)雜,或者產(chǎn)品類中不同的調(diào)用順序產(chǎn)生不同的作用;(4)初始化一個對象特別復(fù)雜,參數(shù)多,而且很多參數(shù)都具有默認值。4建造者模式建造者模式和工廠模式的區(qū)別(1)建造者模式更加注重方法的調(diào)用順序,工廠模式注重創(chuàng)建對象;(2)創(chuàng)建對象的力度不同,建造者模式創(chuàng)建復(fù)雜的對象,由各種復(fù)雜的部件組成,工廠模式創(chuàng)建出來的對象都一樣;(3)關(guān)注點不一樣,工廠模式只需要把對象創(chuàng)建出來就可以了,而建造者模式不僅要創(chuàng)建出對象,還要知道對象由哪些部件組成;(4)建造者模式根據(jù)建造過程中的順序不一樣,最終對象部件組成也不一樣。4代理模式

在日常生活中,能夠經(jīng)常見到:租房中介、婚介、律師事務(wù)所等,這些都是代理模式的實際體現(xiàn)。代理模式的定義也非常簡單,是指為其它對象提供一種代理,幫助對象行使自己的權(quán)利,完成相應(yīng)的功能,并且能夠控制對這個對象的訪問。

代理對象在調(diào)用者(客戶)和目標對象之間起到中介作用,代理模式屬于結(jié)構(gòu)性設(shè)計模式。使用代理模式主要有兩個目的:一是保護目標對象,二是增強目標對象,代理模式的結(jié)構(gòu)類圖如圖。5代理模式5代理模式的類圖結(jié)構(gòu)代理模式代理模式主要包括3個要素組成:1.抽象主題(AbstractSubject)類:通過接口或抽象類聲明真實主題和代理對象實現(xiàn)的抽象方法。2.真實主題(RealSubject)類:實現(xiàn)了抽象主題中的抽象方法,是代理對象所代表的真實對象,是最終要引用的對象。3.代理(Proxy)類:提供了與真實主題相同的接口,其內(nèi)部含有對真實主題的引用,它可以訪問、控制或擴展真實主題的功能。5代理模式根據(jù)代理的創(chuàng)建時間不同,代理模式分為靜態(tài)代理和動態(tài)代理。1.靜態(tài)代理:由程序員創(chuàng)建代理類或特定工具自動生成源代碼再對其編譯,在程序運行前代理類的字節(jié)碼文件(.class)就已經(jīng)存在了;2.動態(tài)代理:在程序運行時,運用Java語言的反射機制動態(tài)創(chuàng)建而成。代理模式是面向切面編程的基礎(chǔ),在SpringAOP編程中會結(jié)合代碼再重點講解靜態(tài)代理和動態(tài)代理的具體實現(xiàn)細節(jié)。5代理模式主要的應(yīng)用場景包括以下5個方面:1.遠程代理2.虛擬代理3.安全代理4.智能指引5.延遲加載5代理模式代理模式主要具有以下3方面的優(yōu)點:1.職責(zé)清晰2.高擴展性3.解耦合5代理模式代理模式的簡單示例5packageproxy;publicclassProxyTest{//調(diào)用者(客戶)publicvoidtest(){Proxyproxy=newProxy();//生成代理對象proxy.request();//調(diào)用代理對象方法}}//抽象主題interfaceAbstractSubject{voidrequest();}//真實主題classRealSubjectimplementsAbstractSubject{publicvoidrequest(){System.out.println("訪問真實主題方法...");}}//代理classProxyimplementsAbstractSubject{//這里演示靜態(tài)代理,代理類也要實現(xiàn)抽象主題privateRealSubjectrealSubject;publicvoidrequest(){if(realSubject==null){//判斷是否存在目標對象,若不存在,則創(chuàng)建一個realSubject=newRealSubject();}beforeRequest();//調(diào)用代理對象方法realSubject.request();//調(diào)用目標對象方法afterRequest();//調(diào)用代理對象方法}publicvoidbeforeRequest(){//代理的增強System.out.println("訪問真實主題之前的預(yù)處理。");}publicvoidafterRequest(){//代理的增強System.out.println("訪問真實主題之后的后續(xù)處理。");}}MVC模式MVC全名是Model-View-Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,它是一種軟件設(shè)計典范,用業(yè)務(wù)邏輯、數(shù)據(jù)處理和界面顯示相分離的方法來組織和管理代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。66.1MVC的由來MVC是在二十世紀八十年代為編程語言Smalltalk-8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論