我正在开发一款Android应用程序,可以运行不同的机器学习模型。我想创建一些类来表示结果的数据,每个机器学习模型都有自己的变量/结果,例如分类问题具有标签而其他问题则没有。
我想在Java中使用继承,实现像Result这样的接口作为ClassificationResult和RegresionResult的父类,如下所示:
Arraylist<Result> resultList;
ClassificationResult cr = new ClassificationResult...
RegresionResult rr = new RegresionResult...
resultList.add(cr)
resultList.add(rr)
但是我遇到了一个问题,就是我不能像ClassificationResult.getLabels()这样从子类中调用方法(我可以将所有子类的方法都放在接口中,但这对我来说似乎很奇怪)
我看到一些设计模式,比如工厂和建造者,但是我在使用工厂模式时遇到了上述问题,并且使用建造者模式时(将所有变量放在一个类中),大多数变量不会被初始化。
我希望能够得到一些关于我应该如何设计的想法。
Circle
添加更多功能,例如getPositionCentre()
方法不在Shape
中,因此您无法调用它。@Alireza Bideli - JMPDuck
并调用其quack()
方法 :) 然后捕获ClassCastException
,如果捕获到,则告诉用户 "你的鸭子已经煮熟了,不再支持嘎嘎叫声" :) - Honza Zidek