问题标签 [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.
javascript - 通过将功能列表传递给工厂函数来在 javascript 中组合对象
使用来自此来源的示例
我应该如何修改此代码,以便能够根据传递给工厂函数的参数分配功能。
例如,我可以有一个名称数组,如下所示:
它是否 Object.assign 给每个函数名称?
我仍在学习新语法,我尝试使用扩展运算符,如下所示:
只是意识到这不是任何一种工作方式。也无法真正弄清楚如何从中进行循环。这应该怎么做?
reactjs - 这是否被认为是来自高阶组件的突变?
我正在阅读关于不要改变原始组件的部分。使用此链接中的组合。
https://reactjs.org/docs/higher-order-components.html
然后我回顾了一个我正在尝试构建的项目。在高层次上,这就是我的代码的样子:
我的问题是:
- 在我的
Wrapper.componentWillAppear()
中,我触发了对象方法,例如this.wrappedComponent.prototype.<methodname>
. 这些对象方法可以设置它自己的状态或在渲染函数中为 html 的内容设置动画。这是否考虑改变原始组件? - 如果问题 1 的答案是肯定的,那么也许我需要一种更好的设计模式/方法来完成我试图在我的代码中描述的内容。这基本上是我的大部分组件需要获取自己的数据(
Home.fetchAllData(){then set the state()}
),更新视图(Home.render()
),运行一些通用动画函数(Wrapper.componentWillAppear(){this.animateFunctionOfSomeKind()}
),然后运行特定于自身的动画(Home.animateContent()
)。所以也许用抽象方法继承更适合我想做的事情?
javascript - 给定一个重构生命周期 HOC,如何避免需要描述 PropTypes?
我已经创建了一个重构生命周期 HOC... 查看组件的代码以了解我如何将 HOC 与我的组件一起使用。
有没有办法避免需要为 HOC 包装描述 PropTypes:
零件:
HOC 重构生命周期
php - PHP对象组合 - 访问所有者类的属性而不传递参数?
我事先已经问过这个问题,但我可能措辞不佳。我没有得到答案。
我有一个类,它在构造时Image
总是创建一个类的实例。Id
每个 Image 总是有一个Id
,当Image
被销毁时,Id
也被销毁。据我了解,这称为对象组合。
我的 Image 类(这里:$myImage)在初始化/构造期间创建了一个属性:$this->id = new Id(); 我希望 $this->id 能够访问 $myImage 的属性。简单的例子:
我想知道如何Id
访问其创建者的属性之一。如果结果不明显,我想知道访问类常量和对象属性之间是否存在差异。
例如,Id
可能需要创建者对象的fileName
andfileSize
来生成散列,或者它可能需要它的validMimeTypes
,这可能是描述该类的 const 数组。
我不介意知道这是否有更好的选择——事实上,我很好奇——但首先我想知道如何在 __construct() 阶段不传递参数的情况下实现这一点。
javascript - Javascript 中的 Mixins 和继承之间有什么实际区别?
只是(模拟)多重继承是混合的唯一优势:
与继承
在 ES6 Javascript 中?
谢谢
c++ - 组合类c++的访问成员
我有以下代码,有一个由“Eyebrow”类组成的“Face”类。面部表情可以更改为允许的公共枚举之一,从而控制每个组成部分的更改方式。每个组成类都应该负责响应更改的表达式,这就是为什么我想将它传递给每个组成部分。
脸.h:
脸.cpp:
眉毛.h:
代码正在用 Cmake 编译:
我收到以下编译器错误:没有在brown.h 的void setExpression(Face::Expression_e) 中声明'Face'。
然后我转发声明的 Face(见下文)并得到编译器错误:'Face::Expression' has not been declared in void setExpression(Face::Expression); 在眉毛.h
brown.h(带有前向声明):
有什么推荐的解决方法,朋友们应该用吗?
java - 在 Java 中混合组合和继承
是否可以在 Java 中混合组合和继承?拳头我有一些泛型类是一个HAS-A(或HAS-MANY)关系(Composition)。
通用类:
Structure、TypeA、TypeB、TypeC等,其中Structure与TypeA、TypeB、TypeC是HAS-A关系。
但是我也有几组从泛型类(继承)继承并处于相同关系的子类。
子类集:
设置 1:
Structure1、TypeA1、TypeB1、TypeC1等,其中Structure1与TypeA1、TypeB1、TypeC1具有相同的HAS-A关系,就像泛型类一样。
并且:Structure1 扩展了 Structure,TypeA1 扩展了 TypeA,...,TypeC1 扩展了 TypeC,等等。
...直到第 X 组:
StructureX、TypeAX、TypeBX、TypeCX 等。
每个特殊结构都有一个特定的 sub-TypeA、sub-TypeB 和 sub-TypeC 等。泛型类定义了一些我希望在处理时重用的代码(属性和方法)具有特殊结构。下面的代码最好地解释了我面临的问题。(我不知道这是否可以通过 Java“泛型”以某种方式解决,但我认为不能。)
javascript - JS组合/继承原型
我希望能够扩展.extend(obj)
函数中给出的任何对象。到目前为止,除了传入对象文字时,我已经让它工作了。
例子:
当从构造函数中调用扩展函数时,这很好用,如下所示:
但是,当我传入一个已经创建的对象文字时,来自 myClass.prototype 的方法不可用。
有没有办法检查最后一种情况并将原型分配给对象本身而不是它的原型,以便最后一种情况也可以工作?
java - java中的编码组合
组合是整体/部分的关系。编码组合关系的常用方法是在组合(整体)对象的构造函数中创建部分对象。java中的示例:
当我们想决定哪些对象将成为部件时,我们可以使用add ...方法将部件对象添加到组合中。您必须遵守这条规则(UML 规范):部分对象不能被共享(被另一个对象引用,除了复合对象)。所以,我认为最好,当你调用 add 方法时,不要在调用 add 方法的方法中引用 part 对象,就像这样,在 Car 类中:
从另一个对象调用 add 方法:
代替
因为在这种情况下,实例是通过t引用共享的,即使是很短的时间,组合关系也变成了聚合。在这种情况下,您可以在 t 对象上调用方法并违反部分对象的封装。零件对象必须仅由组合管理。你怎么看待这件事 ?感谢世界!
python - pandas:链式方法的组合,如 .resample()、.rolling() 等
我想构建一个扩展pandas.DataFrame
——我们称之为它SPDF
——它可以做的事情超出了简单的范围DataFrame
:
现在,DataFrame
那个返回 another的方法DataFrame
,比如.diff()
上面的 MWE,返回 me another SPDF
,这很棒。但是,我还想欺骗链式方法,例如.resample('M').last()
or最终.rolling(2).mean()
生成一个SPDF
。到目前为止我失败了,因为.rolling()
等是 type callable
,并且我的包装器to_spdf
尝试SPDF
从它们的输出构造一个而不“等待”.mean()
或表达式的任何其他最后部分。任何想法如何解决这个问题?
谢谢。