|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。【IT168专稿】我想经由过程本系列文章从头至尾构建一个完全的ASP.NETMVC论坛使用程序,终极的目标是切磋和推进利用ASP.NETMVC框架构建使用程序的最好理论。
1、简介
在本篇中,我想先从全局方面先容一下论坛使用程序的整体方针。在本篇中,我将会商一下制止代码坏滋味的主要性,还将会商怎样使用软件计划准绳和形式来匡助你编写合适将来改动的富有弹性的代码。最初,我还将论证一下为何我选择利用测试驱动开辟体例构建本系列文章中的论坛使用程序。
2、甚么样的软件是好的软件
我不想仅仅为了构建论坛使用程序而恣意构建此论坛使用程序。我的方针是尽量构建最棒的论坛使用程序。
这个方针当即激发如许一个成绩:甚么样的软件是好的软件?是甚么招致一个使用程序比另外一个使用程序更好一些或更差一些呢?在事前没有一个关于“好软件”的界说之前,我没法声明我构建了一个完善的论坛使用程序。
因而,上面是我关于“好软件”的界说。
3、好软件是计划得易于修正的软件
存在多种缘故原由大概必要你改动软件:
1)你大概必要在一个现有软件上增加新的特性
2)你大概必要修正一个现有软件中的毛病
3)你大概必要优化现有软件
4)你大概必要改善现有软件的计划
一样平常说来,计划糟的软件是难于改动的。有些软件计划得云云糟,乃至于每一个人都惧怕碰一碰它。我们人人应当都利用过计划得糟的软件。当软件欠好时,你很但愿它爽性走开;乃至假如无机会的话,你大概想重新入手下手从头编写这款软件。
4、制止代码坏滋味
Robert和MicahMartin把糟的软件部分形貌为代码坏滋味。以下代码坏滋味意味着此软件的誊写是相称糟的:
1)僵化性(Rigidity)—僵化的软件是如许的软件,当你在某个地位作一修改时即请求对体系作出响应的一系列的变动。
2)懦弱性(Fragility)—懦弱的软件是如许的软件,你在某个地位作一修改时即打断别的多处的一般运转。
3)不用要的庞大性—不用要的庞大软件是指过分计划的软件,其目标是为了处置任何大概的改动。
4)不用要的反复—不用要的反复软件中包括大批的反复性代码。
5)流畅性—流畅的软件是指难于了解的软件。
【注重】上述这些代码滋味在Micah和RobertMartin的出名《AgilePrinciples,Patterns,andPracticesinC#》中失掉充实的形貌。在此,激烈倡议读者读一下这本书。
注重,上述这些代码滋味都与一切的代码改动相干联。每个这些代码滋味都将妨害代码的改动。
5、软件计划准绳
遵守优秀的软件计划准绳,将有助于编写软件易于顺应将来变动的软件。软件计划准绳有多少,也不尽不异。比方,Cunningham和CunninghamWiki形貌面向对象计划的11个准绳:
http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign。
个中提到的面向对象计划的前五个准绳与RobertMartin及他的儿子MicahMartin编著的《AgilePrinciples,Patterns,andPracticesinC#》中所主意的软件计划准绳是分歧的。别的,RobertMartin还在ObjectMentor启示的博客上会商了这些准绳:
http://www.objectmentor.com/resources/publishedArticles.html。
别的,我还发明有别的两本书中也供应了有关软件计划准绳的极为有效的信息。第一本是EricFreeman,ElisabethFreeman,KathySierra,BertBates编著的《HeadFirstDesignPatterns》;第二本是BrettMcLaughlin,GaryPollice和DavidWest编著的《HeadFirstObject-OrientedAnalysisandDesign》。只管这些书所会商的准绳与RobertMartin的提法其实不非常不异,可是它们却非常邻近。
不外实在的情形是,上述一切这些针对软件计划准绳睁开会商的资本都源自RobertMartin的事情。RobertMartin并非一切准绳的创造者,可是他切实其实是第一个把这些准绳搜集到一同的人。上面列出这些软件计划准绳:
- SRP—单一义务准绳
- OCP—开关准绳
- LSP—Liskov交换准绳
- ISP—接口断绝准绳
- DIP—依附颠倒准绳
上述这个准绳的汇合恰好对应于缩略词SOLID。
上面的软件计划准绳列表来自于《HeadFirstDesignPatterns》一书:
- 封装变更
- 多用组合罕用承继
- 基于接口而不是基于完成编程
- 在交互的对象间勉力完成松耦合
- 类应当为了扩大而开放,可是为了修正而封闭
- 依附于笼统,而不要依附于详细类
- 仅仅对你的伴侣扳谈
- 不挪用我,我们会挪用你
- 一个类应当唯一一个改动的来由
固然,上述准绳之间也存在很多的堆叠的地方。比方,“单一义务”准绳与前面的“一个类应当唯一一个改动的来由”这一准绳是相分歧的。但是,它们所夸大的重点仍是有所分歧。更多的细节在此方便赘述。
一切这些计划准绳的真正念头在于,勉力构建出可以顺应变更的软件。上述准绳分离关于分歧的准绳举行响应的论述,终极目标也不外是为了创立出能够经得起工夫测试的软件。
6、软件计划形式软件计划形式形貌的是使用软件计划准绳所遵守的战略的成绩。换句话说,一个软件计划准绳是一个好的头脑,而一个软件计划形式是你用于完成这类好的头脑的工具。
软件计划形式的头脑最后源于书本《DesignPatterns:ElementsofReusableObject-OrientedSoftware》。恰是这本书为别的很多形貌软件计划形式书的创作带往灵感。
比方,另外一本书《TheHeadFirstDesignPattern》就以一种更容易于了解的体例向人们先容了GOF所著的书(即下面的那本《DesignPatterns:ElementsofReusableObject-OrientedSoftware》)中所引进的计划形式。这本书中统共具体先容了以下14种软件计划形式:
- Strategy
- Observer
- Decorator
- Factory
- Singleton
- Command
- Adaptor
- Fa
|
|