栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

构建器模式和大量强制性参数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

构建器模式和大量强制性参数

但是,最近我一直在努力了解当所有参数都是强制性参数(或至少绝大多数参数都是强制性参数)时,模式有什么好处。

流利的构建者模式仍然是有益的:

  1. 它更具可读性-它有效地允许使用命名参数,因此调用不仅是一长串未命名参数

  2. 它是无序的-这使您可以将参数分组为逻辑组,既可以作为单个构建器设置器调用的一部分,也可以简单地让您使用自然顺序来调用使该特定实例最有意义的构建器设置器方法。


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();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486098.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号