`
insertyou
  • 浏览: 863554 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

敏捷软件开发读书笔记2——面向对象的设计原则

 
阅读更多
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">SRP<span style=""> </span></span></span><span style="">单一职责原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">就一个类而言,应该仅有一个引起它变化的原因。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">OCP<span style=""> </span></span></span><span style="">开放封闭原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">软件实体(类、模块、函数等)应该对扩展是开放的(易于扩展),但是对于修改是封闭的(不应修改)。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">LSP<span style=""> </span>Liskov</span></span><span style="">替换原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">子类必须能够替换掉它们的基类。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">DIP<span style=""> </span></span></span><span style="">依赖倒置原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">抽象不应该依赖于细节,而细节应该依赖于抽象。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">ISP<span style=""> </span></span></span><span style="">接口隔离原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">不应该强迫用户依赖于他们不用的方法。接口属于用户,不属于它所在的类层次结构。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">REP<span style=""> </span></span></span><span style="">重用发布等价原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">重用的粒度就是发布的粒度。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">CCP<span style=""> </span></span></span><span style="">共同封闭原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">包中所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">CRP<span style=""> </span></span></span><span style="">共同重用原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">一个包中所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">ADP<span style=""> </span></span></span><span style="">无环依赖原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">在包的依赖关系图中,不允许存在环。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">SDP<span style=""> </span></span></span><span style="">稳定依赖原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">朝着稳定的方向进行依赖。</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">SAP<span style=""> </span></span></span><span style="">稳定抽象原则</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style=""><span style="font-family: Calibri;"> </span></span></span><span style="">包的抽象程度应该和其稳定程度一致。</span></span></p>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics