- 偶回头,我的年龄已经不小了。回想起写代码的八九年日子,很茫然。似乎我什么都没写,还是一无所知;又似写过很多功能很多系统,掌握了写软件的基本功。此刻温故,写下一些文字。留待来日我苍老的时候,翻阅回忆。这些文字也好成为我回忆的一个载体,让我忆起我曾经在这无止境的时间中留下的痕迹。
- 我们常见的分类方式将设计模式分为了3类即创建型、结构型、行为型。回想初次接触设计模式的时候,傻傻分不清总有一些模型容易混淆。比如常用的Proxy代理模式,常常就让我分不清他属于结构型还是行为型。每逢考试死记硬背,过些时间也没人考我,我又忘记了。生命就是个不断记忆又不断遗忘的过程啊!
-
此文中我用自己的语言,并非官方定义记录了3大分类6大设计原则。
3大分类
各类定义给出的比较长,我以自己的理解进行了简单的总结。此时的分类也限于语义上的分类。站在不同的角度,能做出不同的拆分。倒是不用纠结于此,能用好这些个设计模式,还是不容易。
创建型:产生对象的模式
比如singleton产生一个对象,factory产生一些列对象
结构型: 改变结构的模式
改变了原来的结构,形成了更方便使用的结构。比如adapter,proxy。改变下原来的结构为了更好的服务项目。
行为型:改变行为的模式
一系列行为的操作。不同于结构型,不致力于利用多态修改原本的结构。比如chain of responsibility是一串行为。
6大设计原则
多态对于设计模型有着奠基石的作用。设计模式多基于多态实现。在设计原则上也离不开多态。更离不开总的原则:高内聚低耦合。
开闭原则(Open Close Principle)
对扩展开放,对修改关闭。
里氏代换原则(Liskov Substitution Principle)
使用父类的地方,也都能用子类。
依赖倒置原则(Dependence Inversion Principle)
面向接口编程,不要直连。
接口隔离原则(Interface Segregation Principle)
不要弄一个类,写很多不同作用的接口。
迪米特法则(最少知道原则)(Demeter Principle)
暴露最少的信息,够用就好
单一职责原则(Single-Responsibility-Principle)
仅负责一个职责