知道设计模式已经很久了,但是一直没有认真的去系统的学习,这几天才开始逐渐的学习起来。下面是我学习设计模式的一些心得。要想成为一名优秀的软件设计师或软件架构设计师,了解一些设计模式是很有必要的。
我认为学习设计模式的思路如下
一、基本概念:理解面向对象;理解重用等概念性的东西;
1. 什么是面向对象?
2. 面向对象的三大机制?
² 封装:隐藏内部实现;
² 继承,复用现有代码;
² 多态,改写对象行为
3. 设计原则:
首先学习设计模式,要学会针对接口编程,而不是针对实现编程;优先使用对象组合而不是继承。这些原则是我们开发中常用到的,也是我们的代码可重用、可扩展的一些原则,所以一定要理解。
² 单一职责原则(SRP):一个类应该仅有一个引起它变化的原因。
² 开放封闭原则(OCP):可扩展,不可修改。(对扩展开放,对修改封闭)
² 里氏代替原则(LSP):子类必须能替换它们的基类
² 依赖倒置原则(DIP):高层模块不应该依赖于低层模块,二者都应该依赖于抽象。 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。
² 接口隔离原则(ISP):不应该强迫客户程序依赖于它们不用的方法。
二、学习常用设计模式;
有些设计模式是比较相似的,所以我还是建议大家学习的时候,要先学那些常用的,等这些常用的设计模式学会了,可以应用自如了,再去学其它的会避免在一些相似的模式之间引起混乱。
我说几个常用的模式:工厂模式、单例模式、代理模式、门面模式、策略模式、状态模式、迭代模式。
我觉得这几个模式,好理解,而且常用,所以可以先从这几个模式入手。另外,有时这些模式联合使用起来效果更好,所以学习设计模式不要太书本化了。
学习设计模式时,首先要先问一下,这个模式干什么用的,在什么情况下用,然后再结合你想象的情况去学习。
三、找一些实际应用的例子,更深刻的理解这些设计模式;
我觉得JIVE论坛里用到的设计模式是一个很值得学习的实际应用,建议大家在学习的过程中参考一下。
四 扩展去学习更多的设计模式。