package com.maom.design.D_08_Decorator;
/**
* @Title: D_08_Decorator
* @Description: 08_装饰模式
* @Author maohb
* @Version 1.0
*/
public class D_08_Decorator {
public static void main(String[] args) {
Car car = new RunCar();
car.show();
System.out.println("---------");
Car swimCar = new SwimCarDecorator(car);
swimCar.show();
System.out.println("---------");
Car flySwimCar = new FlyCarDecorator(swimCar);
flySwimCar.show();
}
}
interface Car {
public void show();
public void run();
}
class RunCar implements Car {
public void run() {
System.out.println("可以跑");
}
public void show() {
this.run();
}
}
/** 抽象装饰类 */
abstract class CarDecorator implements Car{
private Car car;
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public CarDecorator(Car car) {
this.car = car;
}
public abstract void show();
}
class SwimCarDecorator extends CarDecorator {
public SwimCarDecorator(Car car) {
super(car);
}
public void show() {
this.getCar().show();
this.swim();
}
public void swim() {
System.out.println("可以游");
}
public void run() {
}
}
class FlyCarDecorator extends CarDecorator{
public FlyCarDecorator(Car car) {
super(car);
}
public void show() {
this.getCar().show();
this.fly();
}
public void fly() {
System.out.println("可以飞");
}
public void run() {
}
}
设计模式笔记_08_装饰模式
最新推荐文章于 2024-09-10 17:07:09 发布