1222得票35回答
Liskov替换原则的一个例子是什么?

我听说里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的一个基本原则。那么它是什么,有哪些使用示例呢?

562得票17回答
为什么选择结构体而不是类?

在使用Swift时玩耍,来自Java背景,为什么要选择结构体而不是类?似乎它们是相同的东西,只是结构体提供的功能较少。那为什么要选择它呢?

71得票6回答
里氏替换原则 - 没有重写/虚方法?

我对里氏替换原则的理解是,基类的某些属性或实现的行为,在派生类中也应该保持正确性。 我想这意味着当一个方法在基类中被定义时,在派生类中就不应该被重写,因为用基类代替派生类将会产生不同的结果。我想这也意味着拥有(非纯)虚方法是不好的事情? 我觉得自己可能对这个原则有一些误解。如果没有,我不明...

62得票14回答
“开闭原则”背后的意义和理由是什么?

开闭原则指出,软件实体(类、模块等)应该对扩展开放,但对修改关闭。这意味着什么,为什么它是良好面向对象设计的重要原则?

48得票6回答
管道设计模式实现

这是一个有关Pipeline实现的设计问题。以下是我的简单实现。 管道中各步骤/阶段的接口: public interface Step<T, U> { public U execute(T input); } 管道中步骤/阶段的具体实现: public clas...

43得票3回答
单一职责原则的例子是什么?

能否给我一个单一职责原则的例子?我试图理解在实践中,一个类具有单一职责意味着什么,因为我担心我可能每天都会违反这个规则。

31得票8回答
我应该偏向使用IEnumerable<T>还是数组(Arrays)?

在我参与的许多项目中,每当我需要返回只读集合时,我使用 IEnumerable&lt;T&gt; 接口,并将其类型指定如下: Public ReadOnly Property GetValues() As IEnumerable(Of Integer) Get 'co...

29得票4回答
设计模式和设计原则有什么区别?

我刚学习Ruby on Rails,阅读了这些文章: Ruby中的设计模式:观察者、单例 Ruby中的设计模式 但是我不太理解设计模式和设计原则之间的实际区别。请有经验的人士解释一下这两者的区别吗?

27得票7回答
接口隔离原则的背后推理是什么?

接口隔离原则(ISP)指出,许多客户端特定的接口优于一个通用接口。为什么这很重要?

26得票2回答
多线程设计模式

在进行大型项目时,多任务处理有时会导致灾难性后果,因为多个线程访问了共享资源,从而导致共享资源的变异。这样就很难调试和跟踪错误的起源以及它是由什么引起的。这让我想,是否有设计模式可以用于设计多线程程序? 我非常欢迎您对此发表看法和评论。如果有人能提出良好的设计实践,可供我们遵循,使我们的程序...