设计模式基本原则

       首先要推荐一下《设计模式之禅》这本书,对于作为初级码农的我来说,我觉得这本书让人获益匪潜,语言诙谐幽默,例子形象生动,深入浅出的讲解了设计模式的基本概念和最佳实践。刚读完了本书的前两部分,基本原则和23种设计模式。后面两部分是对于这些设计模式的比较。自认为还没有领会各种设计模式的精髓,不敢轻易比较,所以在这里先理出个思路,再行深入。

      六大设计原则分别是:单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则,开闭原则。  

      1.单一职责原则(SRP)

        There should never be more than one reason for a class to change.

        在实践中很难真的做到职责单一,但是需要尽量让接口和类相互之间的耦合降低,降低变动带来的风险。

       2.里氏替换原则(LSP)

         If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T.

         针对继承所带来的耦合性增强问题,使用里氏替换原则增强程序的健壮性,版本升级时也可以保持非常好的兼容性。

       3.依赖倒置原则(DIP)

         High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions.

         模块间的依赖通过抽象发生。所有可能存在变更的地方,都通过抽象类实现,高层模块不需要对底层模块有任何了解,降低耦合性。TDD 开发模式是依赖倒置原则的最高级应用。

        依赖关系的三种传递方式:构造函数传递,setter 方法传递,接口声明依赖对象。其中,接口声明的方式其实就是平常用到的在函数调用时传递依赖对象。

       4.接口隔离原则

        Clients should not be forced to depend upon interfaces that they don't use.

        在根据接口隔离原则拆分接口时,首先必须满足单一职责原则,在业务逻辑上做到最小业务单位。

       5.迪米特法则

       也称最少知识原则,一个对象应该对其他对象有最少的了解。核心观念是类间解耦,弱耦合。

      6.开闭原则

       Software entities like classes, modules and functions should be open for extension but closed for modifications.

      核心在于拥抱变化,在设计层面上对可能存在的变化留出空间,业务逻辑的增加和修改通过扩展而不是对现有类的修改来实现。提高系统的稳定性。开闭原则是所有设计原则的精神领袖。

      码了这么多字发现都是些基本的概念知识,时常回顾一下这些基本原则也是大有裨益的。这些其实更多是在一个抽象层面知道编码工作,可以说是程序员的编码哲学。我们总是需要一些基本的指导原则来引导我们的各种行为,在coding 上,六大设计原则应该成为我们的行为指南。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值