五、 接口延伸出的代理模式

示例:

//  主题接口:定义了核心功能
interface Subject {
    public abstract void eat();
}
// 核心主题:实现了主题接口,并且只实现核心功能
class  RealSubject implements Subject {
    public void eat() {
        System.out.println("核心主题RealSubject要XXXX");
    }
}
// 代理主题:实现了主题接口,完成核心主题的辅助性工作
class ProxySubject implements Subject {
    Subject subject;
    public ProxySubject(Subject subject) {
        this.subject = subject;
    }

    public void prepare() { // 代理主题处理的辅助性操作
        System.out.println("代理主题准备就绪!");
    }

    public void  eat() { // 核心主题要做的事
        this.subject.eat();
    }

    public void destory() { // 代理主题处理的辅助性操作
        System.out.println("代理主题善后完毕!");
    }
}
// 测试类
class TestProxy {
    public static void main(String[] args) {
        Subject realSubject = new RealSubject(); // 核心主题
        Subject proxySubject = new ProxySubject(realSubject); // 代理主题
        proxySubject.prepare();
        proxySubject.eat();
        proxySubject.destory();
    }
}

代理设计模式:
  有一个主题操作接口(可能有多种方法),核心业务主题只完成核心功能,比如:吃饭,
而代理主题负责完成所有与核心主题有关的辅助性操作。

示例图:

  

参考:
  · 自己写的接口,绝对不要使用关键字new直接实例化接口子类,使用工厂类完成。

原文地址:https://www.cnblogs.com/liyue-sqsf/p/8880849.html

时间: 2024-10-17 19:16:28

五、 接口延伸出的代理模式的相关文章

五分钟一个设计模式之代理模式

五分钟一个设计模式,用最简单的方法来描述设计模式. 认识代理模式 代理模式是通过创建一个代理对象,用这个代理对象去代表真实的对象,客户端得到这个代理对象后,就想得到了真实的对象一样.客户端调用代理对象来执行任务,但任务实际上最重还是由真实对象完成的. 代理模式的本质是控制对象的访问. 代理模式包含以下几部分: Subject:目标接口 RealSubject:具体的目标对象,继承自Subject Proxy:代理对象,继承自Subject,使用Proxy可以代替使用RealSubject. 示例

JAVA学习--接口的应用:代理模式

1 public class TestProxy { 2 public static void main(String[] args) { 3 Object obj = new ProxyObject(); 4 obj.action(); 5 } 6 } 7 8 interface Object{ 9 void action(); 10 } 11 //代理类 12 class ProxyObject implements Object{ 13 Object obj; 14 15 public P

接口实际应用-工厂代理模式

1 package cn.demo; 2 interface Subject{ 3 public void get(); 4 } 5 class RealSubject implements Subject{ 6 public void get(){ 7 System.out.println("吃饭"); 8 } 9 } 10 class Factory{ 11 public static Subject getInstance(String charName){ 12 if(&quo

java/android 设计模式学习笔记(9)---代理模式

这篇博客我们来介绍一下代理模式(Proxy Pattern),代理模式也成为委托模式,是一个非常重要的设计模式,不少设计模式也都会有代理模式的影子.代理在我们日常生活中也很常见,比如上网时连接的代理服务器地址,更比如我们平时租房子,将找房子的过程代理给中介等等,都是代理模式在日常生活中的使用例子. 代理模式中的代理对象能够连接任何事物:一个网络连接,一个占用很多内存的大对象,一个文件,或者是一些复制起来代价很高甚至根本不可能复制的一些资源.总之,代理是一个由客户端调用去访问幕后真正服务的包装对象

【设计模式】Proxy 代理模式

[设计模式]Proxy 代理模式 1.代理模式的定义 代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问. 2.静态代理 首先我们通过案例来引出为什么我们需要使用代理模式. 我们给出如下一个接口Moveable 和该接口的实现类: Moveable.java package com.proxy; public interface Moveable { void move(); } Tank.java package com.proxy; import java.util.Rando

你不想干我帮你——代理模式

关键字:设计模式,代理模式,proxy,保护代理,虚拟代理,远程代理,缓冲代理,智能引用代理 代理模式 代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问. 说白了,就是当你不能直接访问一个对象时,通过一个代理对象来间接访问,这种方式就叫做代理模式. 应用场景 代理模式是一种比较常见的结构型设计模式,按照不同的场景,又可以分为保护代理,远程代理,虚拟代理,缓冲代理和智能引用代理. 保护代理,就是为原对象设置不同的访问权限,处于被保护的状态,不可直接访问,用户在访问时根据

JavaSE-接口之静态代理模式

package com.btp.t2; /* * 接口的应用:代理模式 */ public class TestProxy { public static void main(String[] args) { Object obj=new ProxyObject(); obj.action(); } } interface Object{ void action(); } //代理类 class ProxyObject implements Object{ Object obj; @Overri

第14章 结构型模式—代理模式

1. 代理模式(Proxy Pattern)的定义 (1)为其他对象提供一种代理以控制对这个对象的访问 ①代理模式在客户和被客户访问的对象之间,引入了一定程度的间接性,客户是直接使用代理,让代理来与被访问的对象进行交互. ②这种附加的间接性增加了灵活性和不同的用途. (2)代理模式的结构和说明 ①Proxy:代理对象,通常实现与具体的目标对象一样的接口,这样就可以使用代理来代替具体的目标对象. A.保存一个指向具体目标对象的指针,可以在需要的时候调用具体的目标对象,若RealSubject和Su

设计模式 代理模式之静态代理

静态代理要搞清楚三个关系:客户类   代理类   委托类  代理类的行为要类似且强于委托类(实现方法有1.继承,2.代理类与委托类实现共同的接口(首选)) /** * 用静态代理模式完成日志的操作 * @author Administrator * */public class UserAction { private UserDao userDao = UserDaoFac.newUserDao(); public void add(){ System.out.println("=======