问题标签 [composite]

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 投票
2 回答
9801 浏览

gwt - GWT 组合最佳实践

我正在学习 GWT 并且已经开始掌握它。我正处于我的代码变得一团糟的地步,所以我要回去并将其中的合理部分分解为复合材料。我遇到的第一个问题是我的工具支持未能为新的 Composite 类提供 initWidget() 方法。它确实包含一个默认构造函数。
目前,我只是简单地initWidget()通过调用super(initWidget(w)) My project compiles 并按预期运行来填充我的重写方法,尽管我觉得好像我必须遗漏一些东西。

重写 init 时我应该记住什么,如果我需要在构造函数中放置什么。还有什么我需要知道的,或者在此之后它只是归结为普通的旧 Java 吗?

澄清 - 我想到这个问题可能有不同的答案,具体取决于您是打算将所述Composite类作为库的一部分发布还是仅仅作为独立应用程序的一部分发布。我目前特别无意开发外部有用的组件(主要是因为我对这项特殊技术非常陌生。)

谢谢!

0 投票
15 回答
14766 浏览

.net - 什么时候需要接口?

(在 .NET 的上下文中,它的价值是什么)

我倾向于不使用继承,也很少使用接口。我遇到了一个认为接口是自吐槽以来最好的东西的人。他到处使用它们。我不明白这一点,因此接下来的问题。我只是想检查一下我对接口的理解。

如果您在任何地方都使用界面,我假设您可以预测未来,您的应用程序需求已确定并且您的应用程序不会发生任何变化。对我来说,尤其是在早期开发过程中,界面成为了拖累。该应用程序在其生命周期中非常动态。如果您需要在界面中减去或添加成员,很多东西都会中断。上面的人说他创建了另一个接口来处理新成员。什么都没有。

不是组合吗?为什么不使用没有接口的组合?更灵活。

他如何处理必须从接口中减去成员的情况?基本上他不会。事情刚刚破裂,这很好,因为现在您可以看到所有受影响的区域并修复它们。我们不应该更优雅地找出所有相关代码路径的位置,而应该通过蛮力撕掉部分类?

我将软件应用程序视为图形。完整图是最坏的情况,具有 n(n-1)/2。这意味着每个班级都与每个班级交谈。令人困惑的蜘蛛网。n-1 是最好的,其中它们是严格的通信等级。添加另一个接口只是为了补偿一个新的需要的成员,会在图中添加一个顶点,这意味着更多的边和更强的 n(n-1)/2 方程的实现。没有接口的组合更像是 mixin。只有选择类使用特定的方法。使用接口,所有类都被迫使用成员,即使它们不需要它们。组合/混合方法不会添加新的不需要的边缘。

0 投票
4 回答
287 浏览

design-patterns - 使用复合模式时查找节点的选项有哪些?

除了递归查询每个节点之外,还有其他选项可以搜索给定某个标识符的节点吗?

0 投票
1 回答
1359 浏览

c++ - 将 OCX 控件添加到资源对话框(如何控制它)

我正在将 OCX 添加到我在 C++ 项目中创建的资源对话框中。
ocx 正确添加;但我的问题是如何以编程方式访问 ocx?
我没有看到附加的成员变量(甚至是类)。

这是我的 .rc 内容

///////////////////////////////////////// ///////////////////////////对话框信息//

IDD_LENELDECODER DLGINIT BEGIN IDC_MATRIXCONTROL1, 0x376, 26, 0 0x0000, 0x0000, 0x0900, 0x0000, 0x4c7b, 0x0000, 0x3643, 0x0000, 0x0013, 0x0065, 000, 0x000xff, 0, x

其中 IDC_MATRIXCONTROL1 是与 ocx 关联的 ID。我的问题是,如何从一个类中访问这个 ocx 的成员变量;以及如何在对话框调整大小时使其调整大小?

我已经尝试过 MFC ActiveX 和 ATL Project -> ATL Control (composite)。我认为,由于 ATL 复合控件附加了一个转到对话框,因此我可以访问它,但我不知道该怎么做。

任何帮助是极大的赞赏!谢谢,

乔伊

0 投票
1 回答
445 浏览

nhibernate - NHibernate 没有任何侵入性的类装饰?

NHibernate 不需要太多的 POCO 修饰,但是不得不在我的域对象中放置代理键让我感觉有点不舒服。称我为过分热心——我更喜欢“意识形态一致”——但我的域对象肯定应该使用自然键,而不必求助于代理。

我不介意在我的数据库中使用代理,但我真的不想篡改我的工作域模型。我该如何规避这个问题?

我是否使用复合键对域类进行子类化,调整它们以便 NH 可以使用代理键,但我的域并不明智,只看到超类?

在这个(仓促的、人为的)示例中,NH 看到 NHDomainClass 并且可以使用代理,但是因为它适应了 DomainClass,它仍然可以在特定于模型的代码中用作可行的 DomainClass。我相当确定这会起作用,只是想确保我不会错过一些明显更简单的方法,这些方法可以在很短的时间内实现相同的目标。

谢谢。

0 投票
1 回答
554 浏览

mysql - MySQL中的作用域/复合代理键

这是我当前数据库的摘录(更改了表名以便于理解):

Whereid总是一个代理键,用auto_increment.

我想让代理键Pet.id被“限定”Pet.ownerFK或换句话说,有一个复合键[ownerFk, id]作为我的最小键。我希望表的行为如下:

我目前正在使用MyISAM 的此功能,其中“您可以AUTO_INCREMENT在多列索引中的辅助列上指定。在这种情况下,该AUTO_INCREMENT列的生成值计算为MAX(auto_increment_column) + 1 WHERE prefix=given-prefix。当您要将数据放入有序组时,这很有用。”

但是,由于各种(也许是显而易见的)原因,我想从 MyISAM 切换到 InnoDB,因为我需要在某些地方进行事务。

有什么方法可以用InnoDB达到这个效果吗?

我发现了一些关于这个问题的帖子,其中许多建议在插入之前对表进行写锁定。我对此不是很熟悉,但是对于这个来说,这不会是一个表写锁的大修吗?如果可能的话,我宁愿考虑使用写安全事务(我以前从未做过)——将 aOwner.current_pet_counter作为辅助字段。

所以另一个可接受的解决方案是......

实际上,我不需要“作用域”ID 成为实际密钥的一部分。我实际的数据库设计使用了一个单独的“永久链接”表,它使用了这个“功能”。我目前使用它作为丢失交易的解决方法。我想到了以下替代方案:

我还没有在 MySQL 中使用过 transactions/transactionvars,所以我不知道这个是否会有严重的问题。 注意:我不想重复使用id曾经给宠物的 s。这就是为什么我不使用MAX(). 这个解决方案有什么注意事项吗?

0 投票
6 回答
11718 浏览

asp.net-mvc - 用 ASP.NET MVC 实现 MEF?

我试图找出是否有人有任何使用 MEF(托管可扩展框架(微软的新插件框架)和 ASP.NET MVC 的经验或想法。我需要创建一个标准的 ASP.NET MVC,我有。但我需要提供附加功能,即视图和控制器等,具体取决于我是否添加插件。它不需要动态编译,即源代码......但是我放入系统的 DLL..

有没有办法在应用程序启动时动态加载 DLL,然后将视图和控制器与主系统合并?我不知道我是否在正确的轨道上。

然后,我想在应用程序附带的“标准”视图中,我可以使用“IF THEN”来确定是否加载了插件并在用户控件中合并。

好吧,我在这里大声说话,但我想你明白我在说什么。

有任何想法吗?

0 投票
2 回答
6306 浏览

nhibernate - 休眠,集合和复合

我有下表:

复合键不是问题,我知道如何解决这个问题,但我希望我的存储桶类包含 BucketUser 的 IList。我阅读了在线参考,并认为我已经破解了它,但还没有。两个映射如下

- 桶 -

-- 桶用户 --

0 投票
1 回答
576 浏览

eclipse - Eclipse SWT 虚拟复合问题

是否可以使用 SWT 创建虚拟合成,即可以水平或垂直滚动​​超出合成的最大显示区域?

我希望我的小部件(图像)的长度和高度保持不变,无论组合更改为什么大小。

如果要显示 50 张图像,并且在合成最大化时一次只能查看 10 张,我希望能够向右滚动以显示剩余的图像。

我无法让 ScrolledComposite 显示任何内容。

当我只使用合成并附加水平滚动条时,我能够看到前几张图像。

谢谢。

0 投票
4 回答
82629 浏览

sql - 复合索引是如何工作的?

之前我已经在表格上创建了​​复合索引(数学爱好者准备的索引),并假设它们是如何工作的。我只是好奇我的假设是否正确。

我假设当您列出索引的列顺序时,您还指定了索引的分组方式。例如,如果您有列a,b和,c并且您以相同的顺序指定索引 ,a ASC则结果索引本质上将是 中每个“组”的许多索引。b ASCc ASCa

它是否正确?如果不是,那么结果索引实际上会是什么样子?