77得票1回答
F#中的应用程序架构/组合

最近我一直在使用C#进行SOLID原则的开发,实际上我现在所做的就是组合函数。然而最近我重新开始关注F#,认为它应该更适合我当前的工作,因此我想尝试将一个真实的C#项目移植到F#中,作为一个概念验证。我认为我可以编写出实际的代码(以非惯用方式),但我无法想象如何设计架构,以便能够像在C#中那样...

76得票6回答
什么是面向对象设计中的组合?

我经常听到(并在这个网站上读到)很多关于“优先选择组合而不是继承”的话题。 但是什么是组合?我从人类:哺乳动物:动物的角度理解继承,但是我真的找不到组合的定义……有人可以帮我吗?

67得票13回答
为什么要使用继承?

我知道这个问题以前已经讨论过, 但似乎总是在假定继承至少有时比组合更可取的情况下。我想挑战这种假设,以期获得一些理解。 我的问题是:既然你可以通过对象组合实现任何可以使用经典继承实现的功能,而且经典继承经常被滥用[1],而且对象组合使您能够灵活地在运行时更改委托对象,那么为什么要使用经典继承...

66得票5回答
区分委托、组合和聚合(Java面向对象设计)

我一直面临区分委托、组合和聚合的问题,并确定何时最好使用其中之一。 我已经查阅了一本Java OO分析和设计书,但我的困惑仍然存在。主要解释如下: 委托:当我的对象使用另一个对象的功能而不改变它时。 组合:我的对象由其他对象组成,这些对象不能在我的对象被销毁-垃圾回收后继续存在。 聚合...

61得票4回答
聚合 vs 组合 vs 关联 vs 直接关联

我正在复习我的面向对象编程知识。在类之间的关系主题下,我遇到了一些关系对我来说有些含糊不清。 我知道依赖关系“uses-a”和继承关系“is-a”,但我对聚合、组合、关联和直接关联这些关系有些陌生;并且,它们中哪一个是“has-a”关系。有些人把聚合与关联互换使用。 什么是直接关联?还有,...

61得票3回答
JavaScript中的组合、继承和聚合

在网上有很多关于组合与继承的信息,但我没有找到适用于JavaScript的好例子。使用以下代码来演示继承:function Stock( /* object with stock names and prices */ ) { for (var company_name in argu...

60得票5回答
C++中含有其他对象的类的隐式复制构造函数

我知道如果你没有自己实现拷贝构造函数,编译器有时会提供一个默认的拷贝构造函数。但是我不确定这个构造函数具体做了什么。如果我有一个包含其他对象的类,其中没有一个声明了拷贝构造函数,那么行为会是什么样子?例如,像这样的一个类:class Foo { Bar bar; }; class Bar...

43得票6回答
特质继承和自身类型注释之间的区别

在Scala中,我看到了以下构造方式: trait T extends S 并且。 trait T { this: S => 这两者都可以实现类似的功能(即在创建实例之前必须定义S中的抽象方法)。它们的区别是什么?为什么要选择其中之一?

42得票16回答
在Python中组合函数

我有一个函数数组,我想创建一个函数,该函数由我的数组元素组成的复合函数。 我的方法是:def compose(list): if len(list) == 1: return lambda x:list[0](x) list.reverse() fina...

40得票3回答
画布图像遮罩/重叠

在我的项目中,我需要使用画布在另一张大小和图案相同的图像上实现不同颜色的重叠。这些图像都呈波浪形,并将应用于单个主背景图像,以显示每个 onclick 函数上的多个图形。 重叠的图像应更改为另一种选定的颜色。我的问题是,是否有一种使用画布可以更改由画布绘制的图像颜色的方法,还是我们需要始终使...