一、UML类图
二、代码示例
public class Client {
public static void main(String[] args) {
Implementor implementor = new ConcreteImplementor();
Abstraction abstraction = new RefinedAbstraction();
abstraction.setImplementor(implementor);
abstraction.operation();
}
}
public abstract class Abstraction {
protected Implementor implementor;
protected Implementor getImplementor() {
return implementor;
}
protected void setImplementor(Implementor implementor) {
this.implementor = implementor;
}
public abstract void operation();
}
public class RefinedAbstraction extends Abstraction{
@Override
public void operation() {
implementor.operationImp();
}
}
public interface Implementor {
void operationImp();
}
public class ConcreteImplementor implements Implementor{
@Override
public void operationImp() { }
}
三、角色介绍
- Client(客户端):
客户端角色,程序的调用者。 - Abstraction(抽象化):
保存Implementor角色,并使用Implementor角色的方法定义基本的功能。 - RefinedAbstraction(改善后的抽象化):
在Abstraction角色的基础上增加新功能。 - Implementor(实现者):
定义用于实现Abstraction角色的接口的方法。 - ConcreteImplementor(具体实现者):
负责实现在Implementor角色中定义的接口。