从抽象类型初始化子类

时间:2013-12-17 07:55:27

标签: java

我正在尝试编写一个小分类器程序。 但是我的数据并没有完全决定,所以我试图尽可能地使代码尽可能通用。 我遇到了这个问题。

我基本上有3个班级

abstract class AbstractPoint{}
abstract class AbstractCluster{}

class Classifier{
addPoint(AbstractPoint pt){...}
}

到目前为止,我很好。 但是在分类器类中,如果点适合某种模式 我需要创建一个集群来添加点。 但它无法基于抽象类实例化对象。 有什么好的方法/模式吗?或其他方式可以做到这一点?

1 个答案:

答案 0 :(得分:0)

你可以尝试这个:

    abstract class AbstractPoint{  public abstract void doThings();}
abstract class AbstractCluster{ 
    AbstractPoint[] points;
    public abstract void setPoints(AbstractPoint[] points);
    public AbstractPoint[] getPoints() {
        return points;
    }
}

class Classifier{
public void addPoint(AbstractPoint pt){
    pt.doThings();
}
public void addPointsToCluster(AbstractCluster cl,AbstractPoint[] points) {
    if(condition)   //your condition of pattern matching
    cl.setPoints(points);
}
}