Decorator Design Pattern

package com.sheting.design.pattern.demo7;

/**
 * @Author SheTing
 * @Time 2018/3/22 9:11
 */
public interface Car {
    void assemble();
}

package com.sheting.design.pattern.demo7;

/**
 * @Author SheTing
 * @Time 2018/3/22 9:12
 */
public class BasicCar implements Car {

    @Override
    public void assemble() {
        System.out.print("Basic Car.");
    }
}

package com.sheting.design.pattern.demo7;

/**
 * @Author SheTing
 * @Time 2018/3/22 9:12
 */
public class CarDecorator implements Car {

    protected Car car;

    public CarDecorator(Car c){
        this.car=c;
    }

    @Override
    public void assemble() {
        this.car.assemble();
    }

}

package com.sheting.design.pattern.demo7;

/**
 * @Author SheTing
 * @Time 2018/3/22 9:13
 */
public class SportsCar extends CarDecorator {

    public SportsCar(Car c) {
        super(c);
    }

    @Override
    public void assemble() {
        super.assemble();
        System.out.print(" Adding features of Sports Car.");
    }

}

package com.sheting.design.pattern.demo7;

/**
 * @Author SheTing
 * @Time 2018/3/22 9:15
 */
public class LuxuryCar extends CarDecorator{

    public LuxuryCar(Car c) {
        super(c);
    }

    @Override
    public void assemble(){
        super.assemble();
        System.out.print(" Adding features of Luxury Car.");
    }

}

package com.sheting.design.pattern.demo7;

/**
 * @Author SheTing
 * @Time 2018/3/22 9:16
 */
public class DecoratorPatternTest {

    public static void main(String[] args) {
        Car sportsCar = new SportsCar(new BasicCar());
        sportsCar.assemble();
        System.out.println("\n*****");

        Car sportsLuxuryCar = new SportsCar(new LuxuryCar(new BasicCar()));
        sportsLuxuryCar.assemble();
    }
    
}

在JDK中使用
String fileName = "/Users/pankaj/source.txt";
File file = new File(fileName);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容