设计模式——结构型
2023-12-14 21:43:37
1.装饰器模式
要素:装饰器,装饰对象
为待装饰对象中某一结构特征添加内容,而不是新建一个特征
/**
* 装饰对象
*/
public interface Shape {
public void draw();
}
/**
* 具体装饰对象
*/
public class Circle implements Shape{
private String TAG = "Circle";
@Override
public void draw() {
Log.d(TAG,"draw circle");
}
}
/**
* 装饰器
*/
public abstract class ShapeDecorator implements Shape{
protected Shape shape;
private String TAG = "ShapeDecorator";
public ShapeDecorator(Shape shape) {
this.shape = shape;
}
}
/**
* 具体装饰器,当只有一个待装饰对象时可不需要抽象装饰器
*/
public class ColorDecorator extends ShapeDecorator {
private String TAG = "ColorDecorator";
public ColorDecorator(Shape shape) {
super(shape);
}
//原结构方法
public void draw() {
shape.draw();
setColor();
}
//给原结构添加的装饰
private void setColor() {
Log.d(TAG,"set color");
}
}
//测试
Circle circle = new Circle();
ColorDecorator colorCircle = new ColorDecorator(circle);
colorDecorator.draw();
输出log:
文章来源:https://blog.csdn.net/ppss177/article/details/135004041
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!