Java代理模式實(shí)例分析
本文實(shí)例講述了Java代理模式。分享給大家供大家參考,具體如下:
一 不用代理模式的酒商
1 代碼
class RealSubject // 真實(shí)角色(紅酒廠商)
{
public void sell() {
System.out.println("我是紅酒廠商,歡迎品嘗購買");
}
}
public class NoProxytest { // 客戶端
public static void main( String[] args ) {
RealSubject sub = new RealSubject();
sub.sell();
}
}
2 運(yùn)行
我是紅酒廠商,歡迎品嘗購買
二 使用代理模式的酒商
1 代碼
abstract class Subject // 抽象類,真實(shí)角色與代理角色共同繼承
{
abstract public void sell();
}
class RealSubject extends Subject // 真實(shí)角色(紅酒廠商)
{
public void sell() // 覆寫抽象方法
{
System.out.println("我是紅酒廠商,歡迎品嘗購買");
}
}
class ProxySubject extends Subject // 代理角色(代理商)
{
private RealSubject realSubject; // 持有真實(shí)角色的引用
public void sell() // 該方法封裝了真實(shí)對(duì)象的sell方法
{
presell();
if (realSubject == null) {
realSubject = new RealSubject();
}
realSubject.sell(); // 此處執(zhí)行真實(shí)對(duì)象的sell方法
postsell();
}
private void presell()//執(zhí)行實(shí)際角色的方法之前可以進(jìn)行一些預(yù)處理
{
System.out.println("廣告宣傳,免費(fèi)品嘗");
}
private void postsell()//執(zhí)行實(shí)際角色的方法之后可以進(jìn)行一些后續(xù)工作
{
System.out.println("售后處理");
}
}
public class proxyDemo {
public static void main( String[] args ) // 客戶直接找代理商,無須和實(shí)際真正角色打交道
{
Subject sub = new ProxySubject();
sub.sell();
}
}
2 運(yùn)行
廣告宣傳,免費(fèi)品嘗
我是紅酒廠商,歡迎品嘗購買
售后處理
3 類圖

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

