Java:构建器模式与逻辑分组对象
我读过关于如何在java中拆分大型构造函数的文章。但我不太确定我该怎么办。这个问题表明,构建器模式是更好的方法,但同时,某个子句中的一个人说“只有在某些参数是可选的情况下”。因为我的所有参数都是强制性的,所以我看不到构建器模式的任何优势。我只会冒着忘记传递重要信息的风险。因此,这是我创建新的逻辑分组对象的唯一选择,还是我在构建器模式中遗漏了一些重要的事实?建筑商似乎只有在东西可能丢失的情况下才是好的 “因此,这是我创建新的逻辑分组对象的唯一选项,还是我在构建器模式中遗漏了一些重要事实?” 我的意见是: 对。与抽象中所需的工作量相比,在这种情况下使用builder不会带来额外的好处Java:构建器模式与逻辑分组对象,java,coding-style,parameters,constructor,builder-pattern,Java,Coding Style,Parameters,Constructor,Builder Pattern,我读过关于如何在java中拆分大型构造函数的文章。但我不太确定我该怎么办。这个问题表明,构建器模式是更好的方法,但同时,某个子句中的一个人说“只有在某些参数是可选的情况下”。因为我的所有参数都是强制性的,所以我看不到构建器模式的任何优势。我只会冒着忘记传递重要信息的风险。因此,这是我创建新的逻辑分组对象的唯一选择,还是我在构建器模式中遗漏了一些重要的事实?建筑商似乎只有在东西可能丢失的情况下才是好的 “因此,这是我创建新的逻辑分组对象的唯一选项,还是我在构建器模式中遗漏了一些重要事实?” 我的意
注释中还提到:如果对象的参数太多,则可能该对象做的太多。即使所有参数都是必需的,生成器模式仍有一些优点:
也就是说,我的方法总是从一个简单的构造函数开始,只有在调用构造函数会导致代码混乱,并且生成器增加的额外清晰度足以证明添加一个全新类的合理性时,才引入构造函数。构造函数中的许多参数也可能表明该类正在处理太多的问题。建设者只有在层叠的情况下才有意义:对于男孩,添加粗鲁的语言部分,对于女孩,添加购物清单 拆分关注点取决于:继承、泛型参数化类、委托类和逻辑分组对象
还要考虑是否可以编写测试用例。测试驱动开发在这里很有用。如果您需要模拟一个参数类,“依赖注入”将需要一个更抽象的参数类。我想您已经得到了它。。。