攻略大全
1. 粘贴攻略
2. 造火箭攻略
3. 拧螺丝攻略
3.1 基础类
/**
* @author Huadao
* @date Created in 2022/2/15
* @desc 最基础的功能类
*/
public abstract class AbsAnimal {
/**
* 所有动物都会睡觉
*/
public abstract void sleep();
}
/**
* @author Huadao
* @date Created in 2022/2/15
* @desc 最基础的功能实现类
*/
public class AnimalImpl extends AbsAnimal {
@Override
public void sleep() {
System.out.println("AnimalImpl-sleep");
}
}
3.2 装饰类
/**
* @author Huadao
* @date Created in 2022/2/15
* @desc 包装类,继承基础功能,可以调用原有功能,扩展出更多的功能
*/
public class AnimalWrapper extends AbsAnimal{
/**
* 装饰者模式的精髓所在
* 借此调用想调用的方法
*/
AbsAnimal mAbsAnimal;
public AnimalWrapper(AbsAnimal absAnimal){
mAbsAnimal = absAnimal;
}
/**
* 装饰者模式的精髓所在,将想调用的方法组合进来
*/
@Override
public void sleep() {
mAbsAnimal.sleep();
}
/**
* 扩展出新的方法
*/
/**
* 扩展出哭的方法
*/
public void cry(){
System.out.println("Person-sleep");
}
/**
* 扩展出吃的功能
*/
public void drink(){
}
/**
* 扩展出玩的功能
*/
public void play(){
}
}
3.3 调用
AnimalWrapper animal = new AnimalWrapper(new AnimalImpl());
//调用的是AnimalImpl中的sleep()
animal.sleep();
//调用的是AnimalWrapper中的cry()
animal.cry();