40得票3回答
Haskell单子绑定操作符困惑

好的,我不是Haskell程序员,但我对Haskell背后的很多思想非常感兴趣,并且正在学习它。但我卡在了第一步:我似乎无法理解单子(Monads),这似乎是相当基础的。我知道有数百万个关于SO问答的问题要求解释单子,所以我会更具体地阐述我的疑问: 我读了这篇很棒的文章(JavaScript...

39得票1回答
设计模式:组合模式 vs 组成模式

我正在完成一个关于设计模式的课程,在复习笔记时注意到了本学期漏掉的内容:组合(Composite)与组成(Composition)。我理解的是,组合是指一个对象实际封装了整个对象,而组成是指它仅持有指向这些对象的指针。 这是正确的吗?有人能更好地解释一下吗? 在什么情况下我会更喜欢使用其中...

38得票12回答
面向对象的最佳实践 - 继承vs组合vs接口

我想问一个有关如何解决简单面向对象设计问题的问题。我自己对应对这种情况有一些想法,但我很想听听来自 Stack Overflow 社区的意见。相关在线文章的链接也会受到赞赏。我使用的是 C#,但这个问题并不特定于某种语言。 假设我正在编写一个视频店应用程序,其数据库具有 Person 表,其...

33得票8回答
C#是否支持函数组合?

在最新的C#版本中,我能否像Haskell的函数组合那样做?更多信息...? 函数组合是将一个函数的结果作为另一个函数的输入进行管道传输,从而创建一个全新的函数。 我觉得linq是最接近的,但那是链式调用,不是函数组合,对吧?

32得票6回答
继承与组合对于可测试性的影响

在设计我的对象时,我发现从可测试性的角度来看,组合更好。原因是,如果需要在运行单元测试时模拟组成结构的某些部分,则可以使用组合,而如果使用继承层次结构,则无法实现此功能。 我想知道是否还有其他人发现这也是更喜欢使用组合的原因。另外,您因为使用继承而遇到了哪些可测试性问题?

32得票6回答
扩展JFrame与在程序内创建它的区别

在使用Swing制作应用程序时,我看到人们有两种方法来创建JFrame。哪种方法更好,为什么? 我是Java和编程方面的初学者,我的学习来源只有书籍、YouTube和Stack Overflow。import {imports}; public class GuiApp1 { p...

32得票5回答
C# - 对象组合 - 消除样板代码

背景/问题 我参与过许多需要持久化数据的.NET项目,通常使用Repository模式。有没有人知道如何消除尽可能多的样板代码,同时又不影响代码基础的可扩展性? 继承策略 因为很多Repository代码都是样板代码,需要重复编写,所以我通常创建一个基类来处理基本内容,例如异常处理、日志...

32得票4回答
依赖和组合的区别是什么?

这里得出的定义 依赖性 当一个类的结构或行为的变化影响到另一个相关类时,这两个类之间存在依赖关系。反之不一定成立。当一个类包含另一个类时,就会发生这种情况。 组合 组合是聚合的特殊情况。更具体地说,受限制的聚合称为组合。当一个对象包含另一个对象时,如果被包含的对象不能存在...

31得票4回答
为参数指定多个接口

我有一个实现了两个接口的对象...这两个接口分别是: public interface IObject { string Name { get; } string Class { get; } IEnumerable<IObjectProperty> Pr...

31得票4回答
如何将“not”与任意元数的函数组合?

我可以定义一个像这样的类型函数 f :: (Ord a) => a -> a -> Bool f a b = a > b 我希望你能够创建一个将此函数包装为not的函数。 例如,创建如下所示的函数: g :: (Ord a) => a -> a -...