最近拜读了鲍勃大叔的名作 <<clean code>> ,书中的关于编写整洁代码的一些建议,勾起了我对设计模式的一些思考,在这里记录一下,希望过些日子再看到这篇文章,能有更深的领悟。
在四人帮的设计模式中,列举了OO设计的6个重要的设计原则:
1、开闭原则 OCP (Open Close Principle)
2、里氏代换原则 LSP (Liskov Substituion Principle)
3、依赖倒转原则 DI(Dependency Inversion Principle)
4、接口隔离原则 ISP (Interface Segregation Principle)
5、单一职责原则 SRP (Single Responsibility Principle)
6、迪米特法则 LOD(Low Of Demeter)
其中两个最重要的设计原则就是开闭原则,和依赖倒转原则。
开闭原则是OO设计总的设计原则,大概的含义是,应用程序应该通过拓展来满足需求的变更,而不是修改现有的代码来实现。
依赖倒转(控制翻转)原则的含义是,通过某种机制来实现代码的运行逻辑和对象的构建的分离,也就是由代码的调用方来控制对象的构建过程(调用方控制对象的构建),转变为由某种构建程序来负责对象的构建(由构建组件来控制对象的构建)。
如果你梳理一下这6个OO设计原则,就会发现,其中一个最重要的设计思想就是解耦(开闭、依赖倒转、接口隔离、单一职责、迪米特法则),通过降低程序组件的耦合度,清晰的逻辑层级划分,合理的职责拆分,使得你构建的应用程序能够拥抱变化(在需求发生变更的情况下,能够以最小的代价满足客户的需求)。