设计模式 装饰者模式 带你重回传奇世界

上面叙述了一些可能性的设计,都不是很好,下面看看如何将装饰者模式融入:

首先是装备的超类

package com.zhy.pattern.decorator;

/**

  • 装备的接口

  • @author zhy

*/

public interface IEquip

{

/**

  • 计算攻击力

  • @return

*/

public int caculateAttack();

/**

  • 装备的描述

  • @return

*/

public String description();

}

然后分别是武器、戒指、护腕、鞋子

package com.zhy.pattern.decorator;

/**

  • 武器

  • 攻击力20

  • @author zhy

*/

public class ArmEquip implements IEquip

{

@Override

public int caculateAttack()

{

return 20;

}

@Override

public String description()

{

return “屠龙刀”;

}

}

package com.zhy.pattern.decorator;

/**

  • 戒指

  • 攻击力 5

  • @author zhy

*/

public class RingEquip implements IEquip

{

@Override

public int caculateAttack()

{

return 5;

}

@Override

public String description()

{

return “圣战戒指”;

}

}

package com.zhy.pattern.decorator;

/**

  • 护腕

  • 攻击力 5

  • @author zhy

*/

public class WristEquip implements IEquip

{

@Override

public int caculateAttack()

{

return 5;

}

@Override

public String description()

{

return “圣战护腕”;

}

}

package com.zhy.pattern.decorator;

/**

  • 鞋子

  • 攻击力 5

  • @author zhy

*/

public class ShoeEquip implements IEquip

{

@Override

public int caculateAttack()

{

return 5;

}

@Override

public String description()

{

return “圣战靴子”;

}

}

接下来当然是装饰品,宝石了,首先超类

package com.zhy.pattern.decorator;

/**

  • 装饰品的接口

  • @author zhy

*/

public interface IEquipDecorator extends IEquip

{

}

下来蓝宝石、黄宝石、红宝石

package com.zhy.pattern.decorator;

/**

  • 蓝宝石装饰品

  • 每颗攻击力+5

  • @author zhy

*/

public class BlueGemDecorator implements IEquipDecorator

{

/**

  • 每个装饰品维护一个装备

*/

private IEquip equip;

public BlueGemDecorator(IEquip equip)

{

this.equip = equip;

}

@Override

public int caculateAttack()

{

return 5 + equip.caculateAttack();

}

@Override

public String description()

{

return equip.description() + “+ 蓝宝石”;

}

}

package com.zhy.pattern.decorator;

/**

  • 黄宝石装饰品

  • 每颗攻击力+10

  • @author zhy

*/

public class YellowGemDecorator implements IEquipDecorator

{

/**

  • 每个装饰品维护一个装备

*/

private IEquip equip;

public YellowGemDecorator(IEquip equip)

{

this.equip = equip;

}

@Override

public int caculateAttack()

{

return 10 + equip.caculateAttack();

}

@Override

public String description()

{

return equip.description() + “+ 黄宝石”;

}

}

package com.zhy.pattern.decorator;

/**

  • 红宝石装饰品 每颗攻击力+15

  • @author zhy

*/

public class RedGemDecorator implements IEquipDecorator

{

/**

  • 每个装饰品维护一个装备

*/

private IEquip equip;

最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

下面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题全套解析,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。

image

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

image

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

{

/**

  • 每个装饰品维护一个装备

*/

private IEquip equip;

最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

下面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题全套解析,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。

[外链图片转存中…(img-C7tC7e7t-1715393630150)]

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

[外链图片转存中…(img-j9bux9dt-1715393630152)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值