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

静态代理模式:

模式分析

代理模式,顾名思义就是有一个代理, 这个代理会帮助你做一些事情, 那这样的动作或者行为怎么描述呢?用我们的java语言来描述吧, 代理和目标本身(需要被代理的对象)应该都有一个共同的接口, 因为它们要做同一件事情。 除此之外, 代理对象中应该包含目标对象,只要这样,代理对象才能够帮助目标对象完成它本身所要完成的事情。

应用场景

代理对象除了帮助目标对象完成它必须要做需要的事情之外, 还可以帮助目标对对象做一些其他的事情。

例子

目标对象:人

代理对象:婚庆公司

被代理的事情: 结婚

分析:人和婚庆公司都需要有结婚这个方法, 或者实现这个接口, 这样才能代理。 然后婚庆公司需要拥有被代理的对象, 这样才能帮助人结婚, 除了帮助结婚之外, 代理对象(婚庆公司)还可以做一些其他的事情。

package com.Kuang;

/**
 * @author cyt
 * @create 2020-03-07 9:42
 */

/**
 * 代理对象
 * 目标对象
 * 目标对象和代理对象都需要实现一个公共的接口
 * 代理对象可以帮助目标对象来做一些事情, 这样目标对象就可以专注于自己的事情中了。
 * 要完成这样, 代理对象就需要能够得到目标对象
 */
public class StaticProxy {

    public static void main(String[] args) {
        widding widding = new widding(new you());
        widding.happymarry();
    }
}


// 接口
interface Marry {
    void happymarry();
}

// 目标对象, 真实对象。
class you implements Marry {
    @Override
    public void happymarry() {
        System.out.println("Cyt要结婚了");
    }
}

// 代理对象, 它需要得到目标对象(真实对象), 然后帮助真实对象做事情。
// 除了目标对象的事情之外, 它还可以做一些额外的事情来。
class widding implements Marry {

    private Marry marry;

    public widding(Marry marry) {
        this.marry = marry;
    }

    @Override
    public void happymarry() {
        befrom();
        this.marry.happymarry();
        after();
    }

    void after() {
        System.out.println("结婚之后。。。。");
    }

    void befrom() {
        System.out.println("结婚之前。。。。");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值