Abstraction(抽象化)

该角色位于类的功能层次结构的最上层,它使用implementor角色的方法定义了基本的功能,该角色中保存了implementor角色的实例。

RefinedAbstraction(改善后的抽象化)

在Abstraction角色的基础上增加了新功能的角色

Implementor(实现者)

该角色位于类的实现层次结构的最上层,它定义了用于实现Abstraction角色的接口

ConcreteImplementor(具体的实现者)

该角色用于实现在Implementor中定义的接口