我正在使用Spring/Roo作为应用服务器,并且需要能够发布一些特殊字符.具体来说,字符如日元符号或欧元符号.当我在服务器上收到这些字符并在控制台中显示它们时,它们显示为"?".它们如何被正确编码和接收?
我最近一直在与一个研究小组一起研究设计模式,并且已经认识到构建器模式对于创建由许多(可能是可选的)部分组成的复杂对象非常有用.
但是,建造者做得太多了吗?假设我们有一个具有许多不同对象组合的类,是否有另一种模式可能更适合它而不是制作数十种不同的构建器?是否可以通过不制作完全特定的构建器来减少所需的构建器数量?
我的研究小组和我不断回来的例子是汽车制造商,例如在汽车公司的网站上.任何汽车公司都有几十辆汽车,每辆汽车都有许多不同的功能,颜色,附加功能等.我理解它的方式,你的构建器应该特定于你正在制作的对象,所以在这个例子中应用构建器模式将产生数百个看起来像"RedSUVWithSunroofBuilder","BlueSUVWithSunroofBuilder","RedSUVBuilder"等的构建器.
是否有任何理由使用构建器模式,我无法传递其中一些值以减少我需要创建的构建器数量?例如,不是使用RedSUVWithSunroofBuilder或BlueSUVWithSunroofBuilder,它仍然适合构建模式来执行SUVWithSunroofBuilder("Red")和SUVWithSunroofBuilder("Blue"),还是更适合不同的模式?
最近我和我的同事一直在为一个Java项目编写集成测试。这些集成测试中的大多数至少需要一个 SOAP Web 服务调用、LDAP 查询或依赖于我们不一定能够控制的端点的其他内容。其中一些 SOAP/LDAP 调用使用的库也仍在开发中。
这最终意味着,当机器出现故障、库发生更改或端点发生更改时,我们的集成测试有时会在构建过程中失败。经过一些研究后,我注意到人们在集成测试中使用实时端点似乎相当普遍,但我也发现了有关为什么使用实时端点可能有害的文章(http://martinfowler.com/articles/nonDeterminism.html #远程服务)。
我想知道创建集成测试时什么更有意义:模拟所有端点还是使用实时端点?似乎使用实时端点,尤其是在不可靠的情况下,会使测试变得不确定。然而,模拟似乎只能带您到目前为止,您将无法测试在类似生产的环境中发生的情况。由纯模拟组成的集成测试对于验证回归之外的任何内容是否有价值?