标签: Software Design

里氏替换原则:不可违背的契约

子类型必须能够替换其基类型而不破坏程序正确性。这一原则确保继承层次结构保持健全,但开发者经常通过看似无害的设计决策违反它。

开闭原则:在不破坏的情况下扩展

软件实体应该对扩展开放,对修改关闭。这个原则承诺在不破坏的情况下提供灵活性,但开发者在何时应用抽象以及何时会变成过度工程方面挣扎。

单一职责原则:SOLID 设计的基石

一个类应该只有一个改变的理由。这个简单的陈述构成了 SOLID 设计的基础,但开发者却在什么是'单一职责'以及何时拆分类的问题上挣扎。