漫谈“设计模式”

本文探讨了23种经典设计模式的应用,并重点分析了其中几种在Java中的具体实现案例,如Iterator、Decorator、Proxy等,强调了理解设计模式的重要性。
对我来说,经典设计模式提到的23种都能读懂,但能真正领会只有一半左右,深入研究并烂熟于心的就7,8种。

对java语言来说,Prototype模式实际上是没有意义的,可以忽略。

和所有知识一样,不能生硬地去死背23种设计模式,但只要编程时用心思考,其实设计模式就像氧气一样自然弥漫在你的周围。

看看,JDK的API中就有很多设计模式在体现:
Iterator(迭代器,没有这东西怎么来遍历千奇百怪的Map,List啊),
InputStream(装饰器,IO包是伟大的设计,伟大就在于decorator模式),
java.lang.reflect.Proxy(动态代理模式,没有这个Spring的AOP就歇菜了),
java.util.Observer(观察者模式,如果你做Swing,不知道这个模式简直是要人怀疑你的智商),
java.security.KeyStore.Builder(Builder模式)
java.security.KeyFactory(工厂模式,这两个模式反映了在加密策略多变又需要统一的情况下应该怎么处理)
——最近在研究加密,所以相关领域了解比较多。
Serlvet(模板模式,还记得init,destory,service方法吗,定义好了servlet执行的流程才能让你写doGet;还有BaseController...),
个人能力不足,在JDK中暂时只能想到这么多,细节太多我不想解释——只要用心看源代码和google,反正我就是这么过来的。

在不同的问题领域,会催生出不同的设计模式和其变种,可以看出在JDK这样的底层API中大多数是创建型的设计模式在起作用,因为它们需要生成复杂对象。而在Web开发领域,远程通讯,文件处理等等各种场合还有很多经典模式在起作用,例如Strategy,外观,命令模式等等,更多的则是多种设计模式叠加的复合模式,例如MVC。
运用之妙,存乎一心,不可能一蹴而就。
还是那句话:慢慢来,其实我也不懂。

2008-1-18补记:
今天想起来,java.util.File.listFiles(FileFilter filter)方法应该算是策略模式了。又是一个可以用闭包杀死的模式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值