通俗易通,值得收藏的 java 设计模式实战,装饰者模式 之 你不用改变,就让你的能力变强了

最后

2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。

更多JVM面试整理:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

System.out.println(“狗子跑起来吧。。。。。”);

}

@Override

public void bite() {

System.out.println(“狗子生气了,咬你。。。。。”);

}

}

装饰(Decorator)角色

=============================================================================

专门为动物设计了装备,可热插拔,牛得很。

package com.secondgod.decorator;

/**

  • 动物装备

  • 装饰(Decorator)角色

  • @author 二当家的白帽子 https://le-yi.blog.csdn.net/

*/

public abstract class AnimalEquipment implements Animal {

private Animal animal;

public AnimalEquipment(Animal animal) {

this.animal = animal;

}

@Override

public final void move() {

beforeMove();

animal.move();

afterMove();

}

@Override

public final void bite() {

beforeBite();

animal.bite();

afterBite();

}

/**

  • 移动前的能力增强

*/

protected abstract void beforeMove();

/**

  • 移动后的能力增强

*/

protected abstract void afterMove();

/**

  • 咬你前的能力增强

*/

protected abstract void beforeBite();

/**

  • 咬你后的能力增强

*/

protected abstract void afterBite();

}

具体装饰(Concrete Decorator)角色

========================================================================================

觉得狗狗跑得有点慢,于是设计了一件动物加速装备,不要太先进哦。

package com.secondgod.decorator;

/**

  • 动物加速装备

  • 具体装饰(Concrete Decorator)角色

  • @author 二当家的白帽子 https://le-yi.blog.csdn.net/

*/

public class AnimalAcceleratorEquipment extends AnimalEquipment {

public AnimalAcceleratorEquipment(Animal animal) {

super(animal);

}

@Override

protected void beforeMove() {

System.out.println(“打开加速引擎。。。。。”);

}

@Override

protected void afterMove() {

System.out.println(“关闭加速引擎。。。。。”);

}

@Override

protected void beforeBite() {

}

@Override

protected void afterBite() {

}

}

有的小动物会被大的动物欺负,于是为他们设计一款攻击力增强装备来保护自己,不要太猛哦。

package com.secondgod.decorator;

/**

  • 动物保护装备

  • 具体装饰(Concrete Decorator)角色

  • @author 二当家的白帽子 https://le-yi.blog.csdn.net/

*/

public class AnimalProtectionEquipment extends AnimalEquipment{

public AnimalProtectionEquipment(Animal animal) {

super(animal);

}

@Override

protected void beforeMove() {

}

@Override

protected void afterMove() {

}

@Override

protected void beforeBite() {

System.out.println(“安装合金牙套。。。。。”);

}

@Override

protected void afterBite() {

System.out.println(“取下合金牙套。。。。。”);

}

}

测试的时候到了

=====================================================================

package com.secondgod.decorator;

public class Test {

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

面试真题

Spring源码笔记

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

ybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

[外链图片转存中…(img-ENCQKCS4-1715710211945)]

[外链图片转存中…(img-jwshQiU9-1715710211946)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值