ibcadmin 发表于 2019-9-26 09:17:50

设计模式之六大原则

<h2 id="设计模式之六大原则">设计模式之六大原则</h2>
<p>参考文章:https://www.cnblogs.com/lvjy-net/p/10429873.html</p>
<h3 id="一单一职责原则single-responsibility-principlesrp">一、单一职责原则(Single Responsibility Principle,SRP)</h3>
<h5 id="定义一个类只负责一个功能范畴中的相应职责就一个类而言应该只有一个引起它变化的缘故原由">定义:一个类只负责一个功能范畴中的相应职责(就一个类而言,应该只有一个引起它变化的缘故原由)</h5>
<p>该职责要求在面向对象设计时一个类只须要负责一个范畴的功能,避免多个功能范畴大概说多个实例都对应同一个类,这样低落代码之间的耦合度,提高内聚水平。</p>
<h3 id="二开闭原则open-closed-principleocp">二、开闭原则(Open-Closed Principle,OCP)</h3>
<h5 id="定义一个软件实体应当对扩展开放对修改关闭即软件实体应只管在不修改原有代码的环境下举行扩展">定义:一个软件实体应当对扩展开放,对修改关闭。即软件实体应只管在不修改原有代码的环境下举行扩展。</h5>
<p>字面明白很清楚,意思就是设计对象时要思量到扩展性,将来应当只答应对现有代码举行扩展,不能随意修改现有代码,这样也可以避免更多的麻烦和bug出现。</p>
<p>在开闭原则中,我们可以使用抽象化设计来实现该类原则。可以使用<strong>接口、抽象类</strong>等等方式定义抽象层,再根据差别需求来写具体的实现类,以此到达高扩展性的要求。</p>
<h3 id="三里氏替换原则liskov-substitution-principlelsp">三、里氏替换原则(Liskov Substitution Principle,LSP)</h3>
<h5 id="定义全部引用基类父类的地方必须能透明地使用其子类的对象">定义:全部引用基类(父类)的地方必须能透明地使用其子类的对象。</h5>
<p>该原则意思是父类对象可以使用子类对象大概说可以使用子类对象来代替父类的对象,但是不能用父类的对象来代替子类的对象。</p>
<p>可以明白为包罗的关系:我喜好打球,那么我一定喜好打篮球、打羽毛球、打乒乓球,当我打篮球的时间我就可以说我在打球;反之,我说我喜好打篮球,并不代表我喜好打球,因为球并不但有篮球,当我说我在打球的时间,你不能说我就在打篮球是吧?</p>
<h3 id="四依赖倒置原则dependency-inversion-principledip">四、依赖倒置原则(Dependency Inversion Principle,DIP)</h3>
<h5 id="定义抽象不应该依赖于细节细节应当依赖于抽象换言之要针对接口变成而不是针对实现编程">定义:抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口变成,而不是针对实现编程。</h5>
<h5 id="依赖注入dependencyinjectiondi指当一个对象要与其他对象发生依赖关系时通过抽象来注入所依赖的对象常见注入方式有构造注入设值注入setter和接口注入">依赖注入(DependencyInjection,DI):指当一个对象要与其他对象发生依赖关系时,通过抽象来注入所依赖的对象。常见注入方式有:构造注入,设值注入(Setter)和接口注入。</h5>
<h3 id="五接口隔离原则interface-segregation-principleisp">五、接口隔离原则(Interface Segregation Principle,ISP)</h3>
<h5 id="定义使用多个专门的接口而不使用单一的总接口即客户端不应该依赖那些它不须要的接口">定义:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不须要的接口。</h5>
<p>该原则明白起来也相对简朴,当我们用接口来举行设计时,只管将接口的功能独立,避免一个接口被大量依赖。但是,也不能将接口分得太细,这样也倒霉于后期的维护,以是这之间的度是设计者须要体会的关键。</p>
<h3 id="六迪米特法则law-of-demeterlod">六、迪米特法则(Law of Demeter,LoD)</h3>
<h5 id="定义一个软件实体应当尽可能少地与其他实体发生相互作用">定义:一个软件实体应当尽可能少地与其他实体发生相互作用。</h5>
<p>在对象设计时每个类要避免过于依赖其他的类,要只管低落其入口的访问权限。实现对象只和与本身的相干对象联系在一起。</p>
<h3 id="总结">总结:</h3>
<p> 团体来说,六大设计原则都围绕着一个点,就是低落代码之间的耦合度,也就是低落他们之间的关联水平,尽可能提高步伐的后期扩展性。开闭原则、里氏替换原则、依赖倒转原则一样平常会团结起来使用,可以说<strong>开闭原则是最终目标、里氏替换原则是根本、依赖倒转原则</strong>是实现手段。</p><br><br/><br/><br/><br/><br/>来源:<a href="https://www.cnblogs.com/codexiaoyi/archive/2019/09/25/11582526.html" target="_blank">https://www.cnblogs.com/codexiaoyi/archive/2019/09/25/11582526.html</a>
页: [1]
查看完整版本: 设计模式之六大原则