Scala / Java中的编程语言抽象

时间:2014-04-14 17:49:03

标签: java scala design-patterns types abstraction

我目前正在scala中使用matlab编写程序(通过matlabcontrol API)。我想实现一个独立于编程语言的解决方案,所以我可以在Scala中使用一些算法,在Matlab中使用一些算法。 该程序已经工作(据我测试),但我也对抽象感兴趣,以便我可以使用scilab或其他语言交换模块。

要详细了解问题,我将向您展示ImageReader类:

trait ImageReader {
  def readImage(path:String):Any
}

object Matlab_ImageReader extends ImageReader {
  def readImage(path:String):Any = {
     proxy.eval("image = imread('"+ path + "');"
     return "image"
  }
}

我的想法是,我想将返回值视为对我使用的语言对象的引用。我将仅使用Scala作为控制器,使用引用,从而为复杂的matlabcode实现部分面向对象的解决方案。

现在,我还希望交换部分代码,并为其他开发人员提供可能的入口点,以便在Scala中实现自己的解决方案。 问题是:

  1. 如何返回具体和相互的数据类型,所以我可以使用该方法知道我将始终具有相同的返回类型?
  2. 如何在Scala中获取对值的引用?这对我很有帮助,因为我可以用这种方式来抽象它。
  3. 我很抱歉这个模糊的问题,但我真的不知道如何解释我的确切问题:)

1 个答案:

答案 0 :(得分:1)