设计模式6大基本原则之(一)

版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/zhangzijiejiayou https://blog.csdn.net/zhangzijiejiayou/article/details/28110119

单一职责原则(Single Responsibility Principle)

    就一个类而言。应该仅有一个引起它变化的原因。

为什么要遵循单一职责?

    假设一个类承担的职责过多的,就等于把这些职责混合在一起。一个职责的变化可能会削弱或者抑制这个类完毕

其它职责的能力。

这样的耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。

怎样分离出遵循单一职责的类?

    软件设计真正要做的很多内容,就是发现职责并把那些职责相互分离。假设你能够想到多于一个动机去改变一个

类,那么这个类就有多于一个的职责。

小编寄语:单一职责减少了职责之间的耦合程度,也就是减少了类之间的耦合度,增强了类的内聚性。

通过将功能复

杂的类的职责分离。分成若干个类增强了代码的可维护性和可复用性。

体现了面向对象编程的基本原则。

开放—封闭原则(Open Close Principle)

    软件实体(类、模块、函数等等)应该可能够扩展。可是不可改动。

也就是说。这个原则应该具备两个基本特征:对于扩展是开放的。对于更改是封闭的。

怎么遵循?

    我们在设计的时候。要时刻考虑尽量让这个类是足够好,写好了就不要去改动,假设有新的需求我们仅仅须要添加

新的类。原来的代码不能动则不动。但无论模块多‘封闭’都会存在一些无法对之封闭的变化。既然不可能全然封

闭,设计人员必须对于他设计的模块应该对哪种变化封闭作出选择。他必须先推測出最有可能发生变化的种类,然后

构造抽象隔离哪些变化。

    小编寄语:我们在做不论什么系统的时候。都不要指望系统会一開始需求确定,就再也不会变化。这是不现实的也是

不科学的想法。通过开放—封闭原则能够对需求的改变保持相对稳定,从而使得系统在第一个版本号以后不断推出新的

版本号。开放—封闭原则是面向对象设计的核心所在、遵循这个原则能够带来面向对象技术所声称的巨大优点(可维

护、可扩展、可复用、灵活性好)。开发者应该仅对程序在呈现出频繁变化的部分作出抽象,然而,对于程序中的

每一个部分都刻意地进行抽象相同不是一个抽象。

依赖倒转原则(Dependence Inversion Principle)

     A.高层模块不应该依赖低层模块。B.抽象不应该依赖细节。

说白了就是要针对接口编程,不要针对实现编程。

遵循依赖倒转原则的优点?

    通过面向接口编程,无论是高层模块还是低层模块。仅仅要有稳定的接口,那么不论什么一个更改都不用操心其它受到

影响。无论是高层模块还是低层模块都能够非常easy地被复用。

    小者寄语:依赖倒转原则事实上能够说是面向对象的标准,用哪种语言来编敲代码不重要,假设编写时考虑的都是

怎样针对抽象编程而不是针对细节编程,即程序中全部的依赖关系都是终止于抽象类或者接口,那就是面向对象的设

计。反之那就是程序化设计了。




猜你喜欢

转载自www.cnblogs.com/ldxsuanfa/p/10525906.html