Java 装饰器是一种设计模式,它允许我们在不改变原有对象的基础上,为其添加新的功能。装饰器使得我们可以在运行时动态地添加或移除对象的功能。
Java 装饰器是一种设计模式,它允许我们在不改变原有对象的基础上,为其添加新的功能。装饰器使得我们可以在运行时动态地添加或移除对象的功能。
Java 装饰器通常用于扩展类的行为,而不需要修改源代码。它们也可以用来替换继承,以避免单继承的局限性。
是一个简单的 Java 装饰器代码示例:
public intece Shape {
void draw();
}
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Drawing a rectangle");
}
}
public abstract class ShapeDecorator implements Shape {
protected Shape decoratedShape;
public ShapeDecorator(Shape decoratedShape){
this.decoratedShape = decoratedShape;
}
public void draw(){
decoratedShape.draw();
}
}
public class RedShapeDecorator extends ShapeDecorator {
public RedShapeDecorator(Shape decoratedShape) {
super(decoratedShape);
}
@Override
public void draw() {
decoratedShape.draw();
setRedBorder(decoratedShape);
}
private void setRedBorder(Shape decoratedShape){
System.out.println("Border Color: Red");
}
}
public class DecoratorPatternDemo {
public static void main(String[] args) {
Shape rectangle = new Rectangle();
Shape redRectangle = new RedShapeDecorator(new Rectangle());
System.out.println("Rectangle with normal border");
rectangle.draw();
System.out.println("\nRectangle of red border");
redRectangle.draw();
}
}
输出:
Rectangle with normal border
Drawing a rectangle
Rectangle of red border
Drawing a rectangle
Border Color: Red
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(64条)