zoukankan      html  css  js  c++  java
  • 代理

    什么是代理

    什么时候使用代理

    改变我们之前的逻辑,执行方法之前做的什么事情,执行方法之后做了什么事情

    方法增强

    继承

    子类继承父类,将父类的方法进行复写,从而进行增强

    使用前提:

    必须有父类,且存在继承关系

    装饰者设计模式

    此设计模式专门用于增强方法

    使用前提:

    必须有接口

    缺点:

    需要将接口的所有方法都实现

    动态代理:

    在运动时动态的创建代理类,完成增强操作,与装饰者相似

    使用前提:

    必须有接口:

    难点:

    需要反射技术

    静态代理(装饰者模式)

    设计模式

    专门为解决某一类问题,而编写的固定格式的代码

    装饰者固定结构

    接口A,已知实现类C,需要装饰者创建代理类B

    1.  创建B类实现接口A
    2.  提供B类的构造方法,参数类型为A,用于接收A接口的其他实现类(C)
    3.  给类B添加类型为A成员变量,用于存放A接口的其他实现类
    4.  增强需要的方法
    5.  实现不需要增强的方法,方法体重调用成员变量存放的其他实现类对应的方法
    接口A
    package
    cn.zbx.test.method1; public interface Car { public void run(); public void stop(); }
    实现类B
    package
    cn.zbx.test.method1; public class QQCar implements Car { @Override public void run() { // TODO Auto-generated method stub System.out.println("像蜗牛一样跑起来"); } @Override public void stop() { // TODO Auto-generated method stub System.out.println("用脚当刹车"); } }
    装饰者代理类C
    package
    cn.zbx.test.method1; public class GZCar implements Car { private Car qq; public GZCar(Car car) { this.qq = car; } @Override public void run() { // TODO Auto-generated method stub qq.run(); System.out.println("像蜗牛一样跑起来"); System.out.println("5秒破百"); } @Override public void stop() { // TODO Auto-generated method stub qq.stop(); } }

     

  • 相关阅读:
    《几何与代数导引》例2.7.2
    《几何与代数导引》例2.6
    《几何与代数导引》习题1.37.3
    《几何与代数导引》习题1.37.3
    《几何与代数导引》例2.7.1
    《几何与代数导引》例2.7.1
    《几何与代数导引》例2.7.2
    《几何与代数导引》习题1.38
    《几何与代数导引》例2.6
    Android ApiDemo 笔记(一)Content与Graphics
  • 原文地址:https://www.cnblogs.com/xwb583312435/p/8709755.html
Copyright © 2011-2022 走看看