我有建设者:建造者模式。扩展接口
public abstract class ScriptBuilder {
public void buildScript() {
this.commandList = Lists.newArrayList();
}
public abstract void buildSleepCommand(long time);
public abstract void buildSynchronizationCommand();
public abstract void buildTouchDownCommand(TouchPoint touchPoint);
public abstract void buildTouchUpCommand();
public List<String> getScript() {
return commandList;
}
}
实现:
public class StandardScriptBuilder extends ScriptBuilder{
…
}
我需要构建新的构建,它实现了新的接口。此新界面基于ScriptBuilder界面:
class NewScriptBuilder extends StandardScriptBuilder{
public void buildNewCommand(TouchPoint startTouchPoint, TouchPoint endTouchPoint) {
buildTouchDownCommand(startTouchPoint);
buildSynchronizationCommand();
buildTouchDownCommand(endTouchPoint);
}
…
}
是否有任何模式可以扩展现有的构建器接口并保持构建器的优势?我的意思是,如果我们扩展接口,我们不能做:
ScriptBuilder builder = new NewScriptBuilder();
…
builder.buildNewCommand;
如果没有解决,这是正常使用?:
((NewScriptBuilder)builder).buildNewCommand;
THX。
我的意思是:例如,我们可以使用Decorator模式:
public abstract class Decorator extends ScriptBuilder {...} ...
public class OahDecorator extends Decorator {
...
public void buildNewCommand() {
...
}
}
它的代码正常组织,或者选择不同的模式是什么? 任务 - 在构建器中添加新方法。
感谢您的建议。我想使用多个接口。并创建类,实现其中的一些(取决于需求)。 – Aleksandr 2012-07-09 08:18:42