我有configurer
支持连锁式的,像这样:链风格+斯卡拉选项
val configurer = Configurer("init").propA("a").propB(3).propC("bla-bla")
它的第三方的lib,我不能改变。
我有我的
案例类配置(propA:选项[字符串],PROPB:选项[INT],propC: 选项[字符串])
现在我需要用给定的config
对象构建我的configurer
,则应调用方法propX
,如果在config
中设置了相应的值。
以功能性的方式做到这一点的最佳方式是什么?
我不喜欢这个
val configurer = Configurer("init")
val withPropA = config.propA.map(configurer.propA).getOrElse(configure)
val withPropB = config.propB.map(configurer.propB).getOrElse(withPropA)
val withPropC = config.propC.map(configurer.propC).getOrElse(withPropB)
只是觉得应该有一种优雅的方式。
这是一个蹩脚的API,只需将这个东西包装在COnfigurer伴侣对象的'fromConfig'函数中并用它来完成:) – vptheron 2014-10-03 16:58:09