文章目录
1 概述2 类图3 代码
1 概述
2 类图
3 代码
package lixiang
;
public
class Test {
public static void main
(String
[] args
){
new RobotDecorate
(new FirstRobot
()).doMorething
();
}
}
interface Robot
{
void doSomething
();
}
class FirstRobot implements Robot
{
@Override
public void doSomething
() {
System
.out
.println
("Sing");
System
.out
.println
("Say");
}
}
class RobotDecorate implements Robot
{
private Robot robot
;
public RobotDecorate
(Robot robot
){
this
.robot
=robot
;
}
@Override
public void doSomething
() {
}
public void doMorething
(){
robot
.doSomething
(); //一个FirstRobot类型的对象成员
System
.out
.println
("Dance");
}
}
要想把具体的机器人塞入盒子(装饰器),需要在装饰器中添加一个机器人对象成员变量。
class RobotDecorate implements Robot
可以改成
abstract
class RobotDecorate implements Robot
对应第二部分的类图 让装饰器有更多的子类。
李响Superb
认证博客专家
机器学习
TensorFlow
图像处理
成为一名优秀的算法工程师⬆️ ,目前还在读软件工程,AI攻防、算法和深度学习方向,微博同名❤️ :李响Superb,(记得关注,有问题微博私信!)我们一起努力呀!