装饰器模式-Decorator(Java实现)


装饰器模式-Decorator(Java实现)


装饰器模式允许向一个现有的对象添加新的功能, 同时又不改变其结构。


其中 "现有对象"在本文中是StringDisplay类.


添加新的功能的对象在本文中是: SideBorder类 和 FullBorder类


Display接口

StringDisplay类


基础功能类, 用于打印字符串.

使用方式如下:

Display b1 = new StringDisplay("Hello, world.");

b1.show();


装饰器类


AbstractBorder抽象类


这是具体装饰器类的抽象定义, 为了装饰后也能统一对外的接口, 这里也继承了Display接口

SideBorder类


本类是一个装饰器

使用方式如下:

把一个SideBorder装饰器添加到StringDisplay上, 于是乎"Hello, world." 就变成了 "#Hello, world.#"

Display b1 = new StringDisplay("Hello, world.");

Display b2 = new SideBorder(b1, '#');

b2.show();

FullBorder类


本类是一个装饰器

使用方式如下:

把一个FullBorder装饰器添加到StringDisplay上, 于是乎"Hello, world." 就变成了->

+------ --+

|Hello, world.|

+---------+

Display b1 = new StringDisplay("Hello, world.");

Display b3 = new FullBorder(b1);

b3.show();

Main


运行测试

你可能感兴趣的:(装饰器模式-Decorator(Java实现))