问题标签 [composition]

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 回答
1215 浏览

grails - Grails 中的组合:构造函数中的 addTo*

我在 Grails 中有以下简化模型:

  • ADataBlock由许多已排序的ConfigPreset对象组成。

在 ConfigPreset 我有

并且 DataBlock 类包含:

重载的构造函数返回:没有方法签名:[...].addToPresets() 适用于参数类型:(ConfigPreset) 值:[ConfigPreset : null]。

但是为什么我的 ConfigPreset 实例为空?如果我尝试使用未修改的 ctor 在例如 BootStrap.groovy 中创建一个 DataBlock 对象并在其上调用 addToPresets(...) ,它就可以工作。

0 投票
2 回答
1915 浏览

c# - 视图之间共享数据的模式(MVP 或 MVVM)

在相关视图之间共享数据的好模式是什么?

我有一个应用程序,其中 1 个表单包含许多小视图,每个视图的行为或多或少彼此独立(它们通过事件总线进行通信/交互)。我经常需要将相同的对象传递给子视图。有时我需要将同一个对象传递给子视图,然后子视图将其传递给另一个子视图本身包含。

在父表单(视图)中包含的所有视图之间共享此数据的好方法是什么?

我研究了 CAB 及其方法,每个“视图”都有一个“根工作项”,该工作项的字典包含所包含的视图之间的共享“状态”。

这是最好的方法吗?只是一个共享字典,一个根视图下的所有视图都可以访问吗?

我目前的方法是在视图上有一个函数,允许为该视图设置对象。就像是

然后,如果视图包含一个子视图,它知道将其设置在子视图 ala 上:

该应用程序是用 C# 3.5 编写的,用于使用带有结构映射的 MVP 作为 IoC/DI 提供程序的 winforms。

0 投票
6 回答
3029 浏览

php - 有什么办法可以在php中实现多重继承?

假设我有一个父类

这个父类有三个子类

这些子类还有更小的部分,比如

现在,如何总结这一切

我需要执行其继承类中的方法并执行类似的操作

$objparent = 新父级;$objparent -> foo();

0 投票
1 回答
1227 浏览

wpf - 没有 Prism 的 WPF UI 组合

是否有任何替代 Prism 的 UI 组合(区域管理等)?

谢谢你。

0 投票
1 回答
420 浏览

inheritance - 组合、聚合和 DI

聚合:对象存在于其他对象之外,在外部创建,因此它作为参数(例如)传递给构造函数。例如:人——汽车。汽车是在不同的环境中创建的,而不是成为个人财产。

构图:对象只存在于对方内部,或仅在对方内部才有意义,作为对方的一部分。例如:人——心。你不会创造一颗心,然后将它传递给一个人。

这是否意味着对于 DI 框架,聚合是首选和更常见的方法,并提高了可测试性?

这是否也意味着可以通过使用聚合来缓解 C# 等语言中缺乏多重继承的问题。我一直听到有关“组合与继承”的讨论。是否有一个原因?

0 投票
2 回答
1793 浏览

ruby - 在 ruby​​ 中使用组合

我是新的 Ruby,但多年来一直是 .net 开发人员。我想在我的几个模型中实现组合,以确保它们尽可能松散耦合,但不知道从哪里开始,或者如果真的需要这样做,我仍然想像.net 开发人员一样。

谁能给我一些关于从哪里开始的指示。

干杯科林 G

0 投票
2 回答
200 浏览

scala - 如何使用规格测试框架从 Matcher[A] 组成 Matcher[Iterable[A]]

如果我有一个 Matcher[A] 如何创建一个 Matcher[Iterable[A]] 只有当 Iterable 的每个元素都满足原始 Matcher 时才满足。

0 投票
4 回答
634 浏览

wpf - 使用 MEF 动态构建选项卡式应用程序

我更喜欢 MEF,并计划用它来构建一个演示应用程序来加载不同的选项卡。我是 MEF 和 WPF 的初学者,尽管 MEF 正在加载程序集,但我仍然坚持将控件加载到我创建的 TabItem 中。我的代码看起来像这样..

标签是页面,所以我可能做错了,任何帮助将不胜感激。

提前致谢

0 投票
2 回答
546 浏览

c# - MEF:使用组合部分满足导出部分和导出部分

我在 Silverlight 4 中有以下场景:

我有通知服务

片段

以及此服务片段的实施

我怎么能对 MEF 说 ClientNotificationService 的 Plugin 属性必须由导入 INotificationsService 的导入类提供。

例如:

片段

我怎么能说我希望 MEF 使用 Client 类导出的 IPlugin 来满足 ClientNotificationService.Plugin 部分。

基本上,我希望 NotificationService 接收导入类提供的唯一 ID,无论何时它被创建并组合到一个新类,或者如果有其他方法,比如使用元数据来做到这一点,我会很感激任何见解。我已经为此苦苦挣扎了一段时间。

谢谢

0 投票
4 回答
106 浏览

language-agnostic - 公开成员(成员的成员,......)以使用组合在类中提供其功能的术语是什么?

更新:我最初的问题不是很清楚。我正在寻找像下面示例这样的代码违反的原则的名称。

(我更新了代码示例以更好地类似于我正在谈论的场景。我包含的原始代码示例可以在底部找到。这是一个选择不当的示例,因为它说明了一个实际上应该提供访问的层次结构任意“深度”级别的子成员,而且几乎与构图无关,这就是我要问的问题。)


我很确定这有一个术语,我只是想不出它。

错误代码示例

更好的代码示例


我很确定我听说过这个(直接公开一个成员对象,以便它的所有属性/方法都可以公开访问)被描述为一件坏事,因为[在此处插入原则名称]。我要找的词是什么?

(请注意,我不是在问为什么这是/不是一件坏事;我只是在寻找这个词,我这辈子都不记得了。)


原始()代码示例