2015-03-02 53 views
1

该抽象类我有如何使用构建器模式构建抽象类?

public abstract class AbstractActionModel implements IActionModel{ 
    public abstract void getModel(); 
    public abstract void getAction(); 
} 

然后,我想用这个抽象类象下面这样:

this.getActions().put("sth", AbstractActionModel.builder().action("sth").build()); 

既然不能实例化一个抽象类生成器模式不会干活不要”不知道这样做的任何替代模式。

注意:我也没有从这个基类扩展类的知识。

+0

你想如何选择要创建哪个具体的子类? – DNA 2015-03-02 13:05:12

+0

看看这里http://stackoverflow.com/questions/25909701/generic-builder-pattern-class-using-reflection – user902383 2015-03-02 13:06:37

回答

2

如果你想编写一个不知道具体子类的构建器,你的代码的调用者将不得不提供关于要创建哪个子类的信息 - 要么提供一个实际的类对象,要么注册一组具有名称的类。例如:

​​

注意,抽象类需要setter方法加入,从而使制造商可以在不知道具体子类更新属性。

或者,您可以使用reflection来检查子类并调用其方法。

+0

所以没有静态的方式来做到这一点?像这样AbstractActionModel.builder()? – armin 2015-03-03 04:51:11

+0

不是没有提供具体的课程或获得一个方法 - 如果你不知道它是什么,你如何构建一些东西? – DNA 2015-03-03 08:43:28

相关问题