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

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

public interface Animal {
/**
* 移动
*/
void move();

/\*\*

* 咬你
*/
void bite();
}




---


## 具体构件(Concrete Component)角色


用会跑会咬的狗狗类作为具体构件(Concrete Component)角色。



package com.secondgod.decorator;

/**
* 狗
*
* 具体构件(Concrete Component)角色
*
* @author 二当家的白帽子 https://le-yi.blog.csdn.net/
*/
public class Dog implements Animal {

@Override
public void move() {
	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 {

public static void main(String[] args) {
	System.out.println("一只善良小狗子散步中。。。。。");
	Animal animal = new Dog();
	System.out.println("一只凶猛大狗出现,前来欺负善良小狗。。。。。");

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值