职责:
实现细节:
package cn.fllday.decorator;//Component 抽象构件角色:
public interface ICar {void move();
}// 真实对象
class Car implements ICar{@Overridepublic void move() {System.out.println("在地上跑");}}// 装饰器角色
class SuperCar implements ICar{protected ICar car;public SuperCar(ICar car) {super();this.car = car;}@Overridepublic void move() {ve();}}
// ConcreteDecorator 具体装饰角色
class FlyCar extends SuperCar{public FlyCar(ICar car) {super(car);}public void fly() {System.out.println("天上飞");}@Overridepublic void move() {ve();fly();}}
//ConcreteDecorator 具体装饰角色
class WaterCar extends SuperCar{public WaterCar(ICar car) {super(car);}public void swiming() {System.out.println("水里游");}@Overridepublic void move() {ve();swiming();}}
Client 调用
package cn.fllday.decorator;public class Client {public static void main(String[] args) {Car car = new Car();ve();System.out.println("增加新的飞行的Car ---");FlyCar flyCar = new FlyCar(car);ve();System.out.println("增加水里游的Car ----");WaterCar waterCar = new WaterCar(flyCar);ve();}}
调用结果:
在地上跑
增加新的飞行的Car ---
在地上跑
天上飞
增加水里游的Car ----
在地上跑
天上飞
水里游
本文发布于:2024-02-04 18:36:43,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170713823558435.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |