问题标签 [object-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 回答
42 浏览

c++ - 无法正确构图

老实说,我很尴尬,我不得不问,但我坚持下去。

}

我收到此错误:

我不明白。相同的片段适用于内置类型(整数和东西)。

0 投票
1 回答
958 浏览

c++ - 通过组合传递对象数组时使用构造函数

两个班;护士班和医师班;医生有 3 名护士和他的所有属性。使用合成来解决这个问题,但我被困在 3 名护士的对象数组上。

在我的第二个构造函数中,我遇到了一个问题,我以前使用相同的方法进行合成,但唯一的区别是它不是合成中使用的对象数组。现在我被卡住了..请帮助

简短的例子...

`A类{

公开:A();};

B类{私有:A a [2];

公共:B(A[]);};

B::B(A c[2]):a(c){}`

0 投票
5 回答
1569 浏览

java - 当包含类是单例模式时,使用组合创建许多对象

我有一个单例设计模式类。这将始终返回最初创建的相同实例。

但是,我遇到的问题是这个类需要从另一个类创建许多其他对象。我为此使用了组合(POI类的实例ArlabFacade)。从这个单例实例中,客户端应该能够创建许多 POI 对象。而且我不想暴露 POI 类的内部工作原理,一切都必须通过单例实例。

我试过做这样的事情,但它有两个问题。

这个函数只会覆盖:

有没有解决这个问题的设计模式?

0 投票
1 回答
406 浏览

c# - DI 的 NEventStore 组件的对象组合

我正在将 NEventStore 添加到我现有的项目中,并且正在使用 DI。

我想将一个实例CommonDomain.Persistence.EventStore.IRepository注入到我的 MVC 控制器中。该接口的唯一实现EventStoreRepository.
这个类取决于IConstructAggregates并且我发现的唯一实现AggregateFactory是标记为内部的,位于测试项目中并且具有非常奇怪的文件名。

我不应该使用IRepository吗?(为什么它被标记为公共而不被任何内部代码使用?)
我在这里查看示例项目并IRepository用于操作聚合。

还是我应该自己实施IConstructAggregates

0 投票
2 回答
88 浏览

oop - 面向对象设计中的组合逻辑是什么?

我对组成(有)关系感到困惑。我很清楚,例如汽车has a 汽车类。我的问题是关于他们在逻辑上不拥有另一个类的类,而是在物理上拥有它们以便使用它们。您必须有一个引用或拥有一个类才能使用它的方法,但有时它在逻辑层面上没有意义。例如,假设有一个类garbage man并且是另一个类waste container。垃圾人使用empty废物容器的方法和为了使用它的方法,有一个废物容器的参考。这是否意味着垃圾人在面向对象的设计上有一个(嗯,多个)废物容器?我会说垃圾人使用垃圾容器,但这让我感到困惑,因为垃圾人身体上有它。有人可以告诉我逻辑吗?

0 投票
0 回答
70 浏览

c# - 有没有一种简单的方法可以从其他对象组合一个对象?

有没有一种简单的方法可以根据其他对象组合对象?我认为解决方案在于使用 DI 容器和接口,例如。

整个想法不是编写任何映射代码来创建对象。

0 投票
1 回答
340 浏览

c++ - 将继承重构为在 C++ 中保持多态功能的组合

我将来可能会遇到问题,我希望今天做好充分的准备。该问题涉及 C++ 上下文中的继承、多态性和组合。我们如何将“继承代码重用”重构为组合并且仍然能够保持多态方法?

我在这里寻找的是关于这个问题的更多“动手”指导。我提供了一个非常简化的示例来向您展示,我相信您将能够阅读它并将其改进为我需要的答案。

后来像这样扩展...

并像这样应用:

如您所见,一切都非常简单:我可以用它定义一个小型购物目录(想到的第一个示例),并将其以存储在某处的各种语言呈现给用户。假设语言存储在数据库中,因此“fetch_all_titles_for”看起来像这样:

好吧,假设这是一个非常有限的快速启动,因为明天我想在文章中添加另一个“多语言文本属性”,这样我就可以进行描述了。我不需要类别中的描述,所以我不能把它放在 Multilingual_entity 基类中......也许后天我会添加一个“text_review”,一切都会更加破碎,所以我们进入组合车皮:

好的,很好......现在有这些转发方法(我猜是可以容忍的),但我完全打破了“fetch_all_titles_for(Multilingual_entity& m)”的任何方法,因为不再有 Multilingual_entity。我熟悉“优先组合胜过继承”的经验法则,但在示例开始时,有一个基类可以提供有关在何处查找语言数据的信息是有意义的。

问题来了……我必须权衡取舍还是我在这里遗漏了什么?有没有类似界面的解决方案可以帮助我解决这个问题?我想到了类似的东西:

但似乎障碍很大。关于如何能够组合许多多语言属性的对象并使它们具有可扩展性的任何想法?

谢谢。

0 投票
2 回答
447 浏览

opencv - 在 OpenCV 中将形状聚合为新形状

我正在尝试检测由其他对象组成的对象。实际上,我的二进制图像中有三个圆圈形成一个三角形,如下所示:

积分

这些圆圈被正确检测到,但仅作为单个对象,如下所示:

单独检测

我需要的是这些对象的聚合或组合,因此它们被检测为一个大对象,如下所示:

单物体检测

更大的目标是获取图像时刻以获取形状的旋转和缩放。如果您有任何想法或代码,请分享您的想法或代码,将不胜感激。

0 投票
1 回答
521 浏览

c++ - C++ 组合循环依赖

我正在尝试学习 C++,目前我正在尝试了解如何用这种语言实现对象组合。

我有一个由 a和一个类Character继承的类。HeroMonster

ACharacter有一个NormalAbility和一个SpecialAbility

我已经创建了NormalAbilityandSpecialAbility类,它们都继承了一个Ability超类。

我的问题是,当我将 #include "Character.h" 放入 Ability.h 时,normalAbility 和 specialAbility 变量Character.h不会被识别为它们受人尊敬的类。“语法错误:标识符字符串”等错误显示在两个能力继承类的标题中

这是我的代码:

Character.h

Character.cpp

Hero.h

Hero.cpp

Ability.h

Ability.cpp

NormalAbility.h

NormalAbility.cpp

0 投票
2 回答
3895 浏览

c++ - C ++访问基类中两个类的组合中的私有成员

因为我是 C++ 的新手,所以就这样吧!

我有一个基类(我没有在任何地方使用继承),其中包含来自其他两个类的两个对象。我需要从一个私有成员访问另一个类中的另一个。

如何从 myClass2 中的 myClass1 访问 m_member1?:)

(我想避免继承,因为在我的代码中 myClass1 和 2 不是基类......)

谢谢