“为了方便自己和其他人,我想记录下我学到的东西或者在工作中遇到的问题。” .NET 平台的 Web 开发者,瑞典人 Andras Nemes 最近撰写了一系列博文,关于 SOLID 设计原则和其他在面向对象编程和设计中非常有趣的设计模式。在解释为什么写这些文章时,他写下了上面的话。
Andras 将 SOLID 设计原则描述为一系列的面向对象软件设计的指导方针。运用这些原则可以使代码库更加容易理解和维护。它们也支持使用更多的面向对象的风格,因此可以防止代码库演变为高度内部耦合的烂摊子,那样会非常难于调试和扩展。但是他也指出,尽管这些原则是很好的工具集,但是为防止代码过期,它们仍然不能替代维护和重构代码。
SOLID 代表五个设计原则首字母的缩写,Andras 做了如下简要描述:
- 单一职责原则是指每个对象只能有一个引起变化的原因 [YQ1] ,比如每个对象应该只执行一件事。
- 开放封闭原则是指类应该对扩展开放而对于修改封闭。
- 里氏替换原则是指派生类应该可以替代父类,而它必须表现出相同的行为方式。
- 接口隔离原则是指客户端应该不被强制依赖于他们所不用的接口。
- 依赖倒转原则有助于帮助代码解耦合,以确保代码是依赖于抽象而不是依赖于具体的实现。
Andras 为每一个原则描述了什么时候和什么地方应该用何种模式,而后在 demo 中实际运用了模式。他首先实现一个不用模式的例子,接着使用模式重构并改进了代码。他还探讨了前一种设计的缺陷,以及重构是如何改进设计的。
除了 SOLID 原则,Andras 还用同样的方式描述了许多其他的模式,包括:命令模式、建造者模式、访问者模式、桥接模式和观察者模式。
查看英文原文: SOLID Design Principles and Other Patterns Revisited For .NET
感谢姚琪琳对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论