从现在决定坚持写学习设计模式的笔记,希望大家可以提出宝贵的意见。
我学习的是《java与模式》。还会查一些网上的东西或者其他电子书。
现在要搞清楚的是什么是设计模式?引用书中的引用:Alexander说:“我们定义的每一个模式都必须依照一定的法则构造出来,以便能够建立环境,列出此环境里的力,以及一个能够平衡这些力的位形”。
在我的理解,设计模式只是一个已经经过大家认定的一种设计方法,小到一个类的设计方法,大家架构的设计方法,都有设计模式的运用。就像使用面向对象语言,却只使用public字段,允许用户修改成员,这并不是一种好的设计方法。当然,这也属于面向对象的方面。不过,也应该是设计模式的一个小小的应用吧。呵呵。
一个设计模式所需要的要素:
- 名字(Name)
- 问题(Problem)
- 环境或初始环境(Contest或Initial Context)
- 力(Forces)
- 解答(Solution)
- 举例(Examples)
- 末态环境(Resulting Context)
- 推理(Rationale)
- 其他有关模式(Related Patterns)
- 已知的应用(Known Uses)
这里的要素理解并不那么深刻。因为还没有学习到具体的模式。