Java设计模式-代理模式

本文介绍了代理模式在Java中的应用,通过静态代理、JDK动态代理和CGlib动态代理三种方式实现援助防御行为。文章通过机战中的援助防御为例,详细讲解了每个代理方式的实现细节,并提供了相应的测试结果。
摘要由CSDN通过智能技术生成

背景

团队协作不管在现实还是虚拟世界中,都有着至关重要的作用。在SRW中,单打独斗显然是不可行的,队友的协助才能够更好的在机战的世界生存。
机战有一种机制,叫做援助防御,当我方机体遭受攻击时,邻接机体能够挺身而出,代替该机体挨打~。我想,援助防御的行为可以使用代理模式来实现。
代理模式分为三种:静态代理、jdk动态代理和cglib动态代理,现在我就分别来实现这个功能。

接口和实现类

接口:处理攻击的行为:回避、挨打和防御

/**
 * 面对敌人的攻击,我们有三种行为:回避、挨打和防御
 * 注:
 * 回避:完全回避敌人的攻击,不受伤害
 * 挨打:受到敌人的攻击
 * 防御:受到敌人的攻击,但是伤害没有挨打那么大
 */
public interface IHandleAttack {
   

    /**
     * 回避
     */
    public void avoid();
    
    /**
     * 挨打
     */
    public void sufferAttack();
    
    /**
     * 防御
     */
    public void defense();
    
}

实现类:古铁处理攻击的方式

public class AncientIronHandleAttack implements IHandleAttack {
   

    @Override
    public void avoid() {
   
        System.out.println("我完美的回避了这一击~~");
    }

    @Override
    public void sufferAttack() {
   
        System.out.println("反正我血厚得很,尽管打我~~");
    }

    @Override
    public void defense() {
   
        System.out.println("给敌人点面子,还是防御一下吧~~");
    }

}
使用静态代理

静态代理类:需要实现IHandleAttack接口

/**
 * 援助防御代理类
 * 注:援助防御是游戏的一种机制,简单说就是:当兄弟受到攻击时,挺身而出,帮兄弟挡一刀
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值