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í)行實際角色的方法之前可以進(jìn)行一些預(yù)處理
{
System.out.println("廣告宣傳,免費品嘗");
}
private void postsell()//執(zhí)行實際角色的方法之后可以進(jìn)行一些后續(xù)工作
{
System.out.println("售后處理");
}
}
public class proxyDemo {
public static void main( String[] args ) // 客戶直接找代理商,無須和實際真正角色打交道
{
Subject sub = new ProxySubject();
sub.sell();
}
}
2 運行
廣告宣傳,免費品嘗
我是紅酒廠商,歡迎品嘗購買
售后處理
3 類圖

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Java項目中實現(xiàn)使用traceId跟蹤請求全流程日志
這篇文章主要介紹了Java項目中實現(xiàn)使用traceId跟蹤請求全流程日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
使用StringRedisTemplate操作Redis方法詳解
這篇文章主要為大家介紹了使用StringRedisTemplate操作Redis方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
解決SpringBoot配置文件application.yml遇到的坑
這篇文章主要介紹了解決SpringBoot配置文件application.yml遇到的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
java線程池ThreadPoolExecutor實現(xiàn)原理詳解
這篇文章主要介紹了java線程池ThreadPoolExecutor實現(xiàn)原理詳解,ThreadPoolExecutor是線程池實現(xiàn)類,會動態(tài)創(chuàng)建多個線程,并發(fā)執(zhí)行提交的多個任務(wù),需要的朋友可以參考下2023-12-12
SpringBoot詳解整合Spring?Cache實現(xiàn)Redis緩存流程
這篇文章主要介紹了SpringBoot整合Spring?Cache實現(xiàn)Redis緩存方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

