Java代理模式實例分析
本文實例講述了Java代理模式。分享給大家供大家參考,具體如下:
一 不用代理模式的酒商
1 代碼
class RealSubject // 真實角色(紅酒廠商) { public void sell() { System.out.println("我是紅酒廠商,歡迎品嘗購買"); } } public class NoProxytest { // 客戶端 public static void main( String[] args ) { RealSubject sub = new RealSubject(); sub.sell(); } }
2 運行
我是紅酒廠商,歡迎品嘗購買
二 使用代理模式的酒商
1 代碼
abstract class Subject // 抽象類,真實角色與代理角色共同繼承 { abstract public void sell(); } class RealSubject extends Subject // 真實角色(紅酒廠商) { public void sell() // 覆寫抽象方法 { System.out.println("我是紅酒廠商,歡迎品嘗購買"); } } class ProxySubject extends Subject // 代理角色(代理商) { private RealSubject realSubject; // 持有真實角色的引用 public void sell() // 該方法封裝了真實對象的sell方法 { presell(); if (realSubject == null) { realSubject = new RealSubject(); } realSubject.sell(); // 此處執(zhí)行真實對象的sell方法 postsell(); } private void presell()//執(zhí)行實際角色的方法之前可以進行一些預處理 { System.out.println("廣告宣傳,免費品嘗"); } private void postsell()//執(zhí)行實際角色的方法之后可以進行一些后續(xù)工作 { System.out.println("售后處理"); } } public class proxyDemo { public static void main( String[] args ) // 客戶直接找代理商,無須和實際真正角色打交道 { Subject sub = new ProxySubject(); sub.sell(); } }
2 運行
廣告宣傳,免費品嘗
我是紅酒廠商,歡迎品嘗購買
售后處理
3 類圖
更多java相關內(nèi)容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
java 使用JDBC構建簡單的數(shù)據(jù)訪問層實例詳解
以下是如何使用JDBC構建一個數(shù)據(jù)訪問層,包括數(shù)據(jù)轉換(將從數(shù)據(jù)庫中查詢的數(shù)據(jù)封裝到對應的對象中……),數(shù)據(jù)庫的建立,以及如何連接到數(shù)據(jù)庫,需要的朋友可以參考下2016-11-11基于springboot2集成jpa,創(chuàng)建dao的案例
這篇文章主要介紹了基于springboot2集成jpa,創(chuàng)建dao的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01Java使用Callable和Future創(chuàng)建線程操作示例
這篇文章主要介紹了Java使用Callable和Future創(chuàng)建線程操作,結合實例形式分析了java使用Callable接口和Future類創(chuàng)建線程的相關操作技巧與注意事項,需要的朋友可以參考下2019-09-09SpringBoot項目使用mybatis-plus逆向自動生成全套代碼
在JavaWeb工程中,每一個SSM新項目或者說是SpringBoot項目也好,都少不了model、controller、service、dao等層次的構建。使用mybatis-plus逆向可以自動生成,感興趣的可以了解一下2021-09-09springboot 事件監(jiān)聽的實現(xiàn)方法
這篇文章主要介紹了springboot 事件監(jiān)聽的實現(xiàn)方法,并詳細的介紹了四種監(jiān)聽方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04spring boot基于DRUID實現(xiàn)數(shù)據(jù)源監(jiān)控過程解析
這篇文章主要介紹了spring boot基于DRUID實現(xiàn)數(shù)據(jù)源監(jiān)控過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12