工厂模式-代理模式

来源:互联网 发布:中国域名网 编辑:程序博客网 时间:2024/05/16 15:41

代理模式

class FileDownloader(public download(File file);}class File{} //一般代理类使用 Proxy后缀class FileDownloaderProxy{ FileDownloaderProxy(FileDownloader downloader){ this.downloader = downloader; }private FileDownloader downloader; public download(File file){ //这里可以添加通知,通知用户开始下载文件 notifyDownloadWillStart();  //调用代理目标类的方法,进行下载文件 this.downloader.download(file); //这里可以添加通知,通知用户文件下载完成 notifyDownloadIsComplete(); }private void notifyDownloadWillStart(){ System.out.println(“下载开始…”); } private void notifyDownloadIsComplete(){ System.out.println(“下载完成!”); } } Client: FileDownloaderProxy proxy = new FileDownloaderProxy( new FileDownloader());proxy.downlaod(file); 
代理模式提供了一种间接性,可以做一些附加工作,比如记录日志,触发一些事件等,Spring框架中大量使用了这个模式来进行AOP编程。

原创粉丝点击