问题标签 [builder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3575 浏览

html - 在 Rails 中将 HTML 添加到我的 RSS/Atom 提要

默认的 rails XML builder 会转义所有 HTML,例如:

将产生文本:

而不是:foo

有什么方法可以指示 XML 构建器不要转义 XML?

0 投票
3 回答
31187 浏览

ms-access - Microsoft Access - 将多个字段加在一起的总计

我无法完全弄清楚这一点。Microsoft Access 2000,在报告总计部分我有三列的总计,它们只是数字。这些=Sum[(ThisColumn1)], 2, 3,等等以及那些盛大的totls都可以正常工作。

我想有另一列说=Sum([ThisColumn1])+Sum([ThisColumn2]) + Sum([ThisColumn3])但无法弄清楚那些。只是得到一个空白,所以我确定有一个错误。

0 投票
10 回答
8313 浏览

php - 用于 PHP 的 SQL Builder,是否支持 JOIN?

你们中是否有人知道一个可以帮助您构建/操作 SQL 查询、支持 JOIN 的库?

如果你有一些东西可以返回一个对象,它有一些查询集,并且仍然能够对其应用 JOIN、子查询等,它会提供很大的灵活性。

我四处搜索,只找到了 SQL Builder,它看起来很基础,不支持连接。这将是一个真正使它有用的主要功能。

0 投票
3 回答
5762 浏览

c# - 具有继承的构建器设计模式:有更好的方法吗?

我正在创建一系列构建器来清理为我的模拟创建域类的语法,作为改进我们整体单元测试的一部分。我的构建器本质上填充了一个域类(例如 a Schedule),其中一些值是通过调用适当的WithXXX并将它们链接在一起来确定的。

我在构建者中遇到了一些共性,我想将其抽象为基类以增加代码重用。不幸的是,我最终得到的结果如下:

特别注意protected abstract BLDR This { get; }.

域类构建器的示例实现是:

因为 BLDR 不是 BaseBuilder 类型,所以我不能return thisWithId(int).BaseBuilder

在这里公开带有属性的子类型是abstract BLDR This { get; }我唯一的选择,还是我错过了一些语法技巧?

更新(因为我可以更清楚地说明我为什么要这样做):

最终结果是让构建器构建分析域类,人们希望以[程序员]可读格式从数据库中检索这些域类。没什么不好的...

因为那已经很可读了。替代的构建器语法是:

我从使用构建器(并实现所有这些WithXXX方法)中寻找的优势是抽象出复杂的属性创建(使用正确的自动扩展我们的数据库查找值而Lookup.KnownValues不会明显影响数据库)并让构建器提供通常可重用的测试配置文件对于域类...

0 投票
13 回答
257021 浏览

java - 你什么时候会使用建造者模式?

使用 Builder 模式的一些常见的、真实的例子是什么?它给你买了什么?为什么不直接使用工厂模式?

0 投票
1 回答
2943 浏览

reflection - 使用反射来实例化“构建器模式”(Joshua Bloch)

当尝试使用 Joshua Bloch 的“Builder Pattern”[ Effective Java Second Edition中的第 2 项] 和反射 [ object = constructors[index].newInstance(constructorParameterValues); ] 发生以下异常:

java.lang.IllegalAccessException:类 info.soaj.core.util.SjUtilReflection 无法使用修饰符“private”访问类 info.soaj.core.attribute.SjAttributesForThrowable 的成员

注意:这已解决。可访问(私有)构造函数正在被丢弃,并且正在尝试不可访问(覆盖 = false)。底线:程序员错误

一个示例生成器类如下:

0 投票
4 回答
18163 浏览

c# - 设计模式:建造者

我一直在寻找Builder 模式的一个很好的例子(在 C# 中),但找不到一个,因为我不了解 Builder 模式,或者我正在尝试做一些从未想过的事情。例如,如果我有一个抽象汽车和抽象构建器方法来创建汽车零件,我应该能够将我所有的 30 个选择发送给 Director,让它构建我需要的部件,然后构建我的汽车。无论生产哪辆汽车、卡车、半挂车等,我都应该能够以完全相同的方式“驾驶”它。

第一个问题是大多数示例硬编码属性值到具体部分,我真的认为应该来自数据库。我认为这个想法是将我的选择发送给主管(从数据源),并让构建器根据我的数据创建定制产品。

第二个问题是我希望构建器方法实际创建部件然后将它们分配给产品,而不是传递字符串而是真正的强类型产品部件。

例如,我想通过让 Builder 为我制造表单字段来动态创建表单,包括标签、输入部分、验证等。这样我可以从我的 ORM 中读取对象,检查对象的元数据,将其传递给我的 Builder 并将新创建的用户控件结果添加到我的 Web 表单中。

但是,我发现的每个 Builder 示例都只有硬编码数据,而不是将选择从主代码传递给 Builder 并推出定制产品。一切似乎都是一个很大的静态案例陈述。例如,如果我有三个参数,每个参数有 10 个选项,我不想构建 30 个具体的 Builder 方法,我只想创建足以制造我的产品所需的属性,可能只有三个。

我很想让 Director 仅存在于主代码中。应该有一种方法可以自动确定调用哪个具体的构建器方法,类似于多态性和方法重载(尽管这是一个非常糟糕的例子),而不是在模式中使用 case 语句。(每次我需要添加新的产品类型时,我都需要修改现有的Director,这很糟糕)。

0 投票
1 回答
1298 浏览

oracle - 在表单上填充文本框 - oracle

我在 oracle 中使用应用程序生成器 - 我有一个为电影院的开放时间创建新的记录表。

基本上现在我有它,所以你可以从电影院桌子上放一个电影院 ID,但问题是你需要知道这个 ID - 所以它不是很用户友好。我希望通过从下拉列表中选择电影院名称以某种方式动态地将这个 id 放入表单中(我已设法包括电影院下拉列表)

我如何根据应用程序构建器中选择框的选择使用相应的 id 填充表单?

谢谢

0 投票
1 回答
9206 浏览

sql - Oracle Form Builder:在表单中的选项卡之间切换

我正在 oracle forms builder 中构建一个表单

我有一个标签画布

我需要知道按下按钮时如何切换到下一个选项卡

那么我在下一个选项卡按钮中编程什么?

0 投票
6 回答
13872 浏览

java - 如何简洁地用 Java 构建 XML 文档?

我需要从 Java 对象层次结构构建 XML 文档。Java 类和 XML 格式都是固定的。所以我不能使用像XStream这样的 XML 序列化器:它基于 Java 类的 XML 格式。同样,像JAXB这样的 Java XML 绑定技术也不起作用,因为它从 XML 模式创建 Java 类 [ed: 但见下文]。我需要一种手动方法。

技术含量低的 StringBuilder 路线会导致代码脆弱和错误(至少对我而言!)。

像JAXPJDOM这样的 API会产生更健壮的代码,但这些代码非常冗长。

Groovy有一个优雅的MarkupBuilder

其他语言(例如Ruby)甚至有更好的语言,尽管我想继续使用纯 Java。似乎确实有一些用于 Java 的新 XML 构建器,例如actualxml和 James Murty 的xmlbuilder

在 Java 中构建 XML 文档的更优雅的方法是什么?

概括:

Jon Doe 建议使用 dom4jjdom

无论如何,CurtainDog 建议使用 JAXB,jherico 提示我这是一个相关的建议:然后您可以使用 Dozer 在我当前的 JavaBeans 和 JAXB JavaBeans 之间进行映射。

thaggie 推荐JIBX并同意 CurtainDog 和 jherico 的观点,即绑定技术实际上是实用的。

StaxMan 推荐StaxMate

在我看过的东西中,practicalxml 和 James Murty 的 xmlbuilder 似乎是最简洁的构建器,尽管它们是相当新的。像 JAXB 这样的绑定技术似乎提供了额外的安全/自动化。在主流选择中,dom4j看起来不错,但仍然有点冗长。它提供了一个“流利的接口”(突变器返回对突变对象的引用,因此它们可以链接在一起),我喜欢它:

为简洁起见,您可以在此 API 上包裹一个薄外观,为其中一些方法提供简洁的同义词(例如,attr() 而不是 addAttribute())。

谢谢大家!

PS:Stephan Schmidt 从事 Java MarkupBuilder工作,但似乎没有发布它。