微信号:infoqchina

介绍:有内容的技术社区媒体

为.NET重新审视SOLID设计原则和其他模式

2013-09-23 18:39 InfoQ

为了方便自己和其他人,我想记录下我学到的东西或者在工作中遇到的问题。” .NET平台的Web开发者,瑞典人Andras Nemes最近撰写了一系列博文,关于SOLID设计原则和其他在面向对象编程和设计中非常有趣的设计模式。在解释为什么写这些文章时,他写下了上面的话。


Andras将SOLID设计原则描述为一系列的面向对象软件设计的指导方针。运用这些原则可以使代码库更加容易理解和维护。它们也支持使用更多的面向对象的风格,因此可以防止代码库演变为高度内部耦合的烂摊子,那样会非常难于调试和扩展。但是他也指出,尽管这些原则是很好的工具集,但是为防止代码过期,它们仍然不能替代维护和重构代码。


SOLID代表五个设计原则首字母的缩写,Andras做了如下简要描述:

  • 单一职责原则是指每个对象只能有一个引起变化的原因[YQ1] ,比如每个对象应该只执行一件事。

  • 开放封闭原则是指类应该对扩展开放而对于修改封闭。

  • 里氏替换原则是指派生类应该可以替代父类,而它必须表现出相同的行为方式。

  • 接口隔离原则是指客户端应该不被强制依赖于他们所不用的接口。

  • 依赖倒转原则有助于帮助代码解耦合,以确保代码是依赖于抽象而不是依赖于具体的实现。


Andras为每一个原则描述了什么时候和什么地方应该用何种模式,而后在demo中实际运用了模式。他首先实现一个不用模式的例子,接着使用模式重构并改进了代码。他还探讨了前一种设计的缺陷,以及重构是如何改进设计的。


除了SOLID原则,Andras还用同样的方式描述了许多其他的模式,包括:命令模式、建造者模式、访问者模式、桥接模式和观察者模式。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 即将立秋的《课多周刊》(第2期) C++11新特性 Part2 JsonObject null 的神坑 Android面试题大集结 Android M新特性Doze and App Standby模式详解