我在一家投资银行工作,我们需要处理市场和工具。因此,在我的编程问题中,我将使用这些词语来使问题更加清晰。
我一直在尝试构建一个接口及其 ReferenceData 的实现,其任务是:
包括上述内容将有其他参数组合,并将涉及其他参数,如乐器类型(邦德,未来等)。
以上设计将导致在将来考虑新类型的查询参数时进行参数组合,我认为这是一个糟糕的设计。
我按照 Joshua Kerievsky的重构模式所讨论的口译模式进行了跟进,但我遇到了两个问题:
如何处理参数中的空值,比如有人可能正在使用方法 getInstrumentFromAMarketAndISIN(最终字符串市场,最终字符串isin) 并传递空值在市场上。 它应被视为一个有效的查询,然后应该是 getInstrumentsFromAllMarketOfAnISIN(final String isin) 的情况。
我不想让客户端处理if else检查参数然后调用方法,因为这些是实用程序方法,并且将从很多地方调用,这将导致在整个地方进行空检查客户端代码到处 相反, ReferenceData 的实现应该能够处理它。
提前致谢。