返回类 - 面向对象的程序设计模式

时间:2016-07-01 14:39:10

标签: java scala oop design-patterns apache-spark

我正在尝试在Scala中为Spark构建一个ETL类型的模块。我有一个基类变换器,

trait transformer{
  def transformer()
}

然而,我将这个基类扩展到另外两种类型单返回和多返回

trait UnaryReturnTransformer extends transformer{
def inPorts()
def outPorts()
def setExpressions()
}

trait MultiReturnTransformer extends transformer{
def inPorts()
def outPorts()
def setExpressions()
}

现在,实际的实现说,查找变换器,

class LookupTransformer extends UnaryReturnTransformer{
//set local variables
//override functions
override def inports(df:DataFrane):

}

返回类本身是否更好,以便我们可以链接代码, 例如,

new LookupTransformer().inports().setExpression().transform().Outports()

或将其作为

val x=new LookupTransformer()
x.inports()
x.setExpression()
x.transform()
val ret=x.outPorts()

这对我来说似乎更像是一个设计问题。了解设计这样一个系统的最佳实践会很棒。

谢谢!

0 个答案:

没有答案