论坛首页 入门技术论坛

欲习道,则先忘道

浏览 9677 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-04-08   最后修改:2009-04-09
引言:看过"倚天剑与屠龙刀"(不是连续剧,电影,李连杰演的那个)都知道,在后面张无忌和赵敏的手下玄冥二老PK的时候,因赵敏心思缜密又怕自己丢脸, 所以要张无忌不能使用乾坤大挪移与九阳真经,可张无忌除了这两种功夫以外,并不会其他的功夫,这时候,武当的老大"张三丰"吼吼的现身,并且当场教授张无忌太极拳,张三丰打了一套之后问"你记住了没?",张说:"记住了","三丰"老大又说:"把刚才教的拳法,套路都忘记,你就学会太极拳了".

本来想起标题为:太极模式,但是又怕误会成为又是一种新型的设计模式..所以暂且就这个吧..


回到正题:
为什么张三丰教了张无忌拳法,套路后又要让他忘记,并且声称只要忘记就可以学会太极拳了,从这里不难看出张三丰教他的其实是太极拳的特点,思想,能够以柔克刚的思想,方式
对应到软件设计上来,很多的java书,以及网上的电子文档,包括blog,bbs都经常谈论到设计模式,如,代理模式,工厂模式等,事实上这些东西只是模式的实现,各类的设计模式把他抽象成为模式才是我们今天要讨论的东西.
一个好的系统,好的设计模式,一定是遵守"开-闭"原则,具有可扩展性,可插入性的,如前几篇文章中就举例说明了静态工厂模式,工厂方法模式,抽象工厂方法模式,如何把这些模式变成自己的模式呢?那就是将这些模式抽象出来,就如一个系统中存在很多重复的方法,需要不同实现的方法,我们会重新定义一个接口或者抽象类一样,如果我们把这些模式抽象成为一个"模式接口",那我们"模式接口"里面放置的方法就一定包括"开-闭"原则这个接口,而这个"开- 闭"接口的方法一定包括"可插入性,可扩展性",说到这里,相信刚才的问题就一定能够得出答案."如何把这些模式变成自己的模式?",答案就是使用你自己的方式实现这个"开-闭"原则接口,那就是一个好的设计模式.

像张三丰教授张无忌太极拳一样,我们要学的根本不是所谓"工厂模式,代理模式",我们要学的是如何编写实现了"开-闭"这个接口的类,这才是模式之道,忘记拿23个设计模式吧,忘记它们你就学会模式了
所以欲习道,则先忘道
   发表时间:2009-04-09  
不错不错`` 很有道理
0 请登录后投票
   发表时间:2009-04-09  
难道只有一个人同意我的看法么
0 请登录后投票
   发表时间:2009-04-10  
ramus 写道
难道只有一个人同意我的看法么

绝对不止一个,呵呵。很有道理
0 请登录后投票
   发表时间:2009-04-10  
jindw 写道
ramus 写道
难道只有一个人同意我的看法么

绝对不止一个,呵呵。很有道理


可惜文笔太差了。。总感觉不能表达出我内心的意思
0 请登录后投票
   发表时间:2009-04-13  
感受到了。。
学习和使用事务都有利于对事物的理解。
0 请登录后投票
   发表时间:2009-04-13  
有点意思 
0 请登录后投票
   发表时间:2009-04-14  
good。不过,你所谓的道理,不是适合于所有的人。
其实都如果去看看Bob大叔的那本,敏捷实践和原则,也许更多的人会受益
0 请登录后投票
   发表时间:2009-04-14  
agile_boy 写道
good。不过,你所谓的道理,不是适合于所有的人。
其实都如果去看看Bob大叔的那本,敏捷实践和原则,也许更多的人会受益


饿..怎么成所谓的道理了...

前几天我也在想,是不是适合一部分人,因为对于许多语种以及其他的模式,比如敏捷,某些方面是有冲突的
0 请登录后投票
   发表时间:2009-04-16  
模式不模式的,那是给新手看的,说白了就是代码打的多了,怎么打都有模式,羚羊挂角~~~
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics