但是,最近我一直在努力了解当所有参数都是强制性参数(或至少绝大多数参数都是强制性参数)时,模式有什么好处。
流利的构建者模式仍然是有益的:
它更具可读性-它有效地允许使用命名参数,因此调用不仅是一长串未命名参数
它是无序的-这使您可以将参数分组为逻辑组,既可以作为单个构建器设置器调用的一部分,也可以简单地让您使用自然顺序来调用使该特定实例最有意义的构建器设置器方法。
Widget example = new Widget.Builder(req1, req2,req3,req4,req5,req6,req7,req8)
.addOptional(opt9)
.build();分为以下几类:
Object1 group1 = new Object1(req1, req2, req3, req4);Object2 group2 = new Object2(req5, req6);Widget example2 = new Widget.Builder(group1, group2, req7, req8) .addOptional(opt9) .build();虽然使用单独的对象可以使事情简化很多,但是如果不熟悉代码,也会使 *** 作变得有些困难。我考虑的一件事是将所有参数移到他们自己的
addParam(param)方法中,然后对build()方法中所需的参数执行验证。
在适当或自然的情况下,我会倾向于混合动力。它不必是所有构造函数 或
每个PARAM都有自己addParam方法。使用Builder,您可以灵活地在两者之间或两者之间进行组合:
Widget.Builder builder = new Widget.Builder(Widget.BUTTON);builder.withWidgetBackingService(url, resource, id);builder.withWidgetStyle(bgColor, lineWidth, fontStyle);builder.withMouseover("Not required");Widget example = builder.build();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)