Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

设计Pattern观念知多少(1)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  [b]设计Pattern观念知多少[/b](物泽。Business Object组)

  世界第一本OO字典主编Donald Firesmith预言:从现在到1999年,OO样式观念的进展将在OO技术领域之中一枝独秀,具有革命性。

  经典之着--软体样式(Design Patterns)是1995年排行第一的OO书籍,新一代杰出软体师皆人手一册。

  于此,说明一些样式的观念,叙述样式与物件观念的结合发展过程,并列出从1964至1996年2月之间的45篇重要书籍和文章,供您参考。

  Δ人们何时会用到样式呢﹖

  ──在进退维谷的困境中。例如﹐孔明面对司马懿的兵临城下﹐攻守皆有危机。例如﹐为了保健﹐家庭常存有药罐﹐但小孩婴儿常会误食。例如﹐想和男友结婚﹐但又怕伤父母之心。

  Δ为什么人们会去寻找样式﹖

  ──在进退维谷之状况下﹐未曾面对过﹐尚无经验者往往会不知所措、进退失据﹐才会感到此状况是个困境。在不知所措时﹐常心想﹕别人是否也遭遇过类似情况﹖他们是如何面对呢﹖自然会想去请教专家或向别人学习﹐尝试套用别人的做法(样式)来解决自己的困境。

  Δ使用样式时﹐有何感觉﹖

  ──心头郁闷一扫而空的感觉。

  ──柳暗花明又一村的感觉。

  ──四两拨千斤的感觉。

  ──「要是没有这一招﹐我真的不知如何是好」的感觉。

  Δ为什么会有柳暗花明又一村的感觉呢﹖

  ──样式常朦胧依俙可见﹐而非显而易见。是由经验中推敲出来﹐去芜存菁后的间接性方案(indirect solution)。 例如﹐孔明的「空城计」是细心推敲而得的构思﹐而不是信手招来的简单直接方案﹐而必须从丰富的经验之中提炼出来的。

  ──已有的经验愈丰富、或样式的运用愈熟练﹐就会觉得样式是极明显的方案。

  Δ为何依样(式)画葫芦﹐但仍常有「画虎不成反似犬」之情形呢﹖

  ──样式是抽象的模板(template)﹐让您套用它、修正它、加上环境(context) 因素﹐才会得到具体可行的方案(solution)。所以样式告诉您理想的方案像什么、有那些特性﹔同时也告诉您些规则﹐让您依循之﹐而产生适合于环境的具体方案。

  ──当规则的掌握不灵活、或无法充分融入外在环境因素﹐可能无法得到具体有效的方案。

  Δ为什么设计师经常使用样式呢﹖

  ──设计品常需融入环境因素﹐并使环境与设计品构成和谐的整体。在设计过程中﹐常会面临环境的各种需求和条件﹐来自不同方面的需求可能会互相冲突而呈现不和谐的现象。因而不断运用样式来化解冲突使其变为均衡和谐﹐亦即不断把环境因素注入样式中而产生有效的方案来使冲突之力量不再互相激荡。

  ──有效的设计专家﹐会大量运用其惯用之样式﹐而不会一切从头创造新方案(reinvent the wheel)。

  Δ为什么好的设计品会令人感到快活(alive) 呢﹖

  ──样式运用得好﹐能化解冲突为详和﹐问题(problem) 也迎刃而解﹐自然令人感到舒畅。

  ──好的设计师以流畅的方式将令人舒畅的样式组合而成设计品﹐其设计品自然令人感到快活。

  Δ什么是流畅的组合方式呢﹖

  ──样式的组合就如同写作文章﹐样式是字汇 或成语﹐而设计品就如同写作出来的句子或文章。

  ──写作文章时﹐人们依循文法规则及风格而将字汇成语流畅地组合成句子﹐再流畅地组合成文章。

  ──每位作家皆有各自的一套规则和风格来写作文章。同理﹐每位设计家皆各有一套规则来变样式流畅地组合成为设计品。

  ──于是﹐一堆字汇、成语 + 一套规则(文法和风格)≡ 一个自然语言,同样地,一堆样式 + 一套规则 ≡ 一个样式语言(pattern language)

  ──最理想的是﹕人人心中的样式语言能大同小异。

  ──由于规则仍藉由样式表达出来﹐所以 { 样式} ≡ 一个样式语言

  Δ样式与reuse 之间有何关系﹖

  ──样式是设计专家「屡试不爽」的妙招﹐所以只有reusable的样式才会长存于专家心中﹐即样式必有个特性──reusable。

  Δ为什么样式语言像树木的基因(gene)呢﹖

  ──如同一般语言﹐含有限的字汇、成语和文法规则﹐而能进行无限多种的组合﹐产生无限的句子及文章。

  ──样式语言﹐含有限的样式﹐而设计师能进行无限的组合﹐产生无限种的设计品。

  ──在无限组合与变化之中﹐因大家使用极相近的样式语言﹐使得设计品呈现出一致性(uniformity)。

  ──树的基因的作用﹕使千千万万的树没有两棵是一模一样﹐但却具有高度的一致性。基因让树木之间的一致性(uniformity)与变化性(variety) 维持平衡。设计者之间使用共通的样式语言﹐使得设计品没有两个会一模一样﹐但却具有高度的一致性。样式语言让设计品之间的一致性与变化性维持平衡。

  ──基因维持结构的一致﹐但不局限各部位的随环境而变化﹐使得树木能生生不息﹐并与环境和谐相处。

  ──样式语言维持设计品结构的一致﹐但未局限各部位的随环境而变化﹐使得设计品(如软体)能生生不息﹐并与环境(如其它软体)和谐共存。

  ──基因创造了树木的有机次序(organic order) ﹐样式语言则创造了设计品的有机次序。有机次序塑造了自然之美。

  Δ大家皆「有样学样﹐依样画葫芦」﹐岂非就不用思考﹐扼杀掉创造力了吗﹖

  ──样式是抽象的﹐套用时必须视环境(context) 的需求而修正﹐然后才产生具体的方案。样式只是引导人们的创意﹐使其融合别人的智慧﹐并充分考虑外在环境的需求。例如﹐食谱并未限制厨师的创新﹐反而常激发厨师的新创意。

  ──设计的新手们经由样式的引导﹐成长会加速﹐具有建设性。

  Δ样式有助于解决软体的复杂性与困境吗﹖

  ──顶尖软体思想大师Fred Brooks 在二十多年前就指出﹕大型软体的困境是来自于设计的参与者之间﹐其设计的理念(conceptual)并不一致(integrity) 。至今﹐他仍认为这个困难尚未解决。

  ──如果设计参与者人人皆使用共同的样式语言﹐同时使用者也使用相同的样式语言﹐则样式语言像基因一样﹐保持着一致性﹐就有希望使得软体设计师的理念一致了﹐并合乎使用者的理念,软体的困境就能解决了。■

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:CRM产品系统分析   下一篇:设计Pattern观念知多少(2)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号