首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合模式: Fluent Builder和Null对象模式

组合模式: Fluent Builder和Null对象模式
EN

Software Engineering用户
提问于 2015-01-07 23:49:08
回答 1查看 328关注 0票数 2

我目前正在处理一些GUI代码,其中有一个表,它的行与某个对象相对应,比如Person对象。当表初始化时,它用它所知道的Person对象填充表,比如Bob、Andy和Tom。行项的其余部分(row.getItem())为空。在这个特定的GUI框架中,不能突出显示/选择getItem()返回null的行,但是在我的特定用例中,我希望允许这个功能。

因此,在初始化表时,我希望将Bob、Andy和Tom后面的行设置为表示空/空人(本身未初始化)的Person对象,因此可以使用空对象模式。由于Person类使用fluent构建器模式来构造Person实例,所以模式结合在一起,所以我考虑将两者结合起来如下:

代码语言:javascript
复制
for (rows in table) {
    if (row.getItem() == null) {
        row.setItem( Person.PersonBuilder().nullObject().build() );
    }
}

我正在寻求关于这一选择的优点的反馈/建议,如果这种方法有缺陷,欢迎选择其他方法。

EN

回答 1

Software Engineering用户

发布于 2015-02-01 05:02:51

使用您的方法,其中一个问题将是检查一行是否包含空对象。我会使用一个常量对象,例如Person.NullObject (其中它是一个静态值),一个优点是,您可以始终通过检查row.getItem == Person.NullObject来检查该行是否有值,但是如果使用这种方法,则必须确保Person.NullObject的字段不会通过就地编辑进行修改。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/269367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档