《第一行代码Java》接口实现代理设计模式(Proxy)笔记与代码
2018-02-06 12:44
831 查看
.接口的应用 —— 代理设计模式(Proxy)
区分:
一个接口有至少有两个子类:一个是真实对象,一个是代理对象(代理模式)
一个接口一个子类(工厂模式)
Ø代理设计也是在java开发中使用较多的一种设计模式,所谓的代理设计就是指一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理,就好比在生活中经常使用到的代理上网那样,客户通过网络代理连接网络,由代理服务器完成用户权限,访问限制等与上网操作相关的操作
代理模式的核心精髓在于有一个主题操作接口(可能有多种方法),核心业务主题只完成核心功能
代理主题完成所有与核心主题相关的辅助性操作
区分:
一个接口有至少有两个子类:一个是真实对象,一个是代理对象(代理模式)
一个接口一个子类(工厂模式)
Ø代理设计也是在java开发中使用较多的一种设计模式,所谓的代理设计就是指一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理,就好比在生活中经常使用到的代理上网那样,客户通过网络代理连接网络,由代理服务器完成用户权限,访问限制等与上网操作相关的操作
代理模式的核心精髓在于有一个主题操作接口(可能有多种方法),核心业务主题只完成核心功能
代理主题完成所有与核心主题相关的辅助性操作
package org.java.factory; /** * * @author coder * */ interface Network{ // 定义Network接口 public void browse() ; // 定义浏览的抽象方法 } class Real implements Network{ // 真实的上网操作 public void browse(){ // 覆写抽象方法 System.out.println("上网浏览信息 (真实实现)") ;} } class Proxy implements Network{ // 代理上网 private Network network ; public Proxy(Network network){// 设置代理的真实操作 this.network = network ; // 设置代理的子类 } public void check(){ // 与具体上网相关的操作 System.out.println("检查用户是否合法 (代理实现)"); } public void browse(){ this.check() ;// 可以同时调用多个与具体业务相关的操作 this.network.browse() ; // 调用真实上网操作 } } public class ProxyTest { public static void main(String args[]){ Network net = null ; // 定义接口对象 net = new Proxy(new Real()) ;// 实例化代理,同时传入代理的真实操作 net.browse() ;// 客户只关心上网浏览一个功能 } } /*检查用户是否合法 (代理实现) 上网浏览信息 (真实实现) */
相关文章推荐
- php中使用接口实现工厂设计模式的代码
- 设计模式学习笔记(五)之代理模式(Proxy)
- 设计模式学习笔记--Proxy代理模式
- java 设计模式学习笔记六 proxy代理模式
- 设计模式C++学习笔记之二(Proxy代理模式)
- 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式)
- 设计模式--学习笔记--代理模式Proxy--基础篇
- 设计模式C++学习笔记之二(Proxy代理模式)
- 设计模式C++学习笔记之二(Proxy代理模式)
- 【设计模式学习笔记十三】【结构型模式】【代理模式(Proxy)】
- 【设计模式】学习笔记16:代理模式之虚拟代理(实现CD封面加载器)
- 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式)
- 设计模式学习笔记---代理模式Proxy(Java版)
- 设计模式C++学习笔记之二(Proxy代理模式)
- 设计模式C++学习笔记之二(Proxy代理模式)
- 设计模式C++学习笔记之二(Proxy代理模式)
- 设计模式 笔记 代理模式 Proxy
- 设计模式学习笔记以及java代码实现
- 设计模式C++学习笔记之二(Proxy代理模式)
- java 设计模式学习笔记六 proxy代理模式