Java 从抽象类型初始化子类
我想写一个小的分类器程序。 然而,我所拥有的数据还没有完全确定,所以我试图使代码尽可能通用。 我遇到了这个问题 我基本上有三节课Java 从抽象类型初始化子类,java,Java,我想写一个小的分类器程序。 然而,我所拥有的数据还没有完全确定,所以我试图使代码尽可能通用。 我遇到了这个问题 我基本上有三节课 abstract class AbstractPoint{} abstract class AbstractCluster{} class Classifier{ addPoint(AbstractPoint pt){...} } 到目前为止我很好。 但是在分类器类中,如果点符合某个模式 我需要创建一个集群来添加点。 但是不可能基于抽象类实例化对象。 有什么好的方
abstract class AbstractPoint{}
abstract class AbstractCluster{}
class Classifier{
addPoint(AbstractPoint pt){...}
}
到目前为止我很好。
但是在分类器类中,如果点符合某个模式
我需要创建一个集群来添加点。
但是不可能基于抽象类实例化对象。
有什么好的方法/模式吗?或者其他方法可以做到这一点?您可以尝试以下方法:
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);
}
}
现在还不完全清楚你在追求什么,但你可能正在寻找一种工厂模式。是否可以向
AbstractPoint
添加一个方法,该方法可以返回相应的具体AbstractCluster
?听起来您需要一些具体的类以及这些抽象类。也许您应该编写一个或多个扩展AbstractCluster
的类,您可以实际实例化这些类!谢谢我需要初始化分类器内的集群。