注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

(转载)学习设计模式的一些常见问题  

2012-01-31 15:18:57|  分类: UML+设计模式 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

学习设计模式的一些常见问题

地址:http://blog.csdn.net/co0der/article/details/7192990
分类: Java 面向对象 模式 2012-01-11 10:57 307人阅读 评论(1) 收藏 举报
根据最近热心读者的反馈,这里列出来一些常见的设计模式的问题,进行解答。如何领悟设计模式中的面向对象思想,还是请下载《漫谈设计模式》 
学习设计模式的一些常见问题 
1. 模式有没有标准形式? 
GoF为了描述每一种设计模式,给它们定义了四个基本要素,旨在模式使模式能够得到广泛传播,这并不代表GoF给出的模式就是标准模式。事实上,他们也没有给每一种模式给出标准,而是很多地方给出了它们可能的变化,比如像组合(Composite)模式,有透明的组合模式,也有安全的组合模式,还例如观察者(Observer)模式,有push和pull两种形式。 
这些设计模式只是为常见问题给出经验人士的一个参考方案,避免我们重复的发明轮子,而没有血统之分(哪个标准,哪个不标准),所以这个问题是个伪命题。 
2. 设计模式和OO什么关系? 
设计模式最初引入的时候,正处于面向对象设计高速发展时期,那些模式都是来自成功的面向对象系统的某些部分,所以这23个最基本的模式都是关于面向对象的,但这不表示只有面向对象才有模式。我们知道,模式是是某一上下文环境中一个问题的常用解决方案,那么,SOA(Service-Oriented Architecture)可以有模式,Agile也可以有模式,OSGI(Open Services Gateway initiative)也有模式。 
3. 能不能创造新的设计模式? 
完全可以,只要你能给一个上下文的问题给出一个通用的解决方案,并能使用GoF的四个基本要素描述它们。但是要避免重复的发明轮子,你必须了解你创造的是否已经存在,或者是否是已存在模式的变种。 
4. 学习了设计模式,就等于学会了设计? 
学习设计模式只是借鉴OO专家的成功经验,要学会设计,还得向他们一样,学会使用OO的眼光看待问题,解决问题。这样,在解决问题的过程中,模式就会手到擒来,并且自然地变化它们以适应你的问题本身。 
5. 设计模式是OO设计的根本吗? 
解决问题才是根本,模式只是关于解决问题的经验总结。笔者最初学习设计模式之后,以为优雅的设计就是尽可能的使用设计模式,所以在解决问题是刻意的套用它们,出现了一些拙劣的设计。后来读取了Eric Evans的《Domain-Driven Design: Tackling Complexity in the Heart of Software》一书,才意识到为领域建模的重要性,为解决问题,要为你的领域问题建立合理的模型,既然OO能够为软件编程带来巨大的变化,我们就要学会使用OO的眼光分析问题,享受OO给编程带来的莫大好处。 
于是紧接着,在后来的一个软件开发中,我开始从问题本质入手,“忘却”模式,为问题提取模型,等设计开发完成之后,发现,我已经自然而然的使用了组合(Composite)模式和解释器(Interpreter)等模式。至此,我才意识到使用OO眼光分析问题的重要性,所以,这本书籍并不是单纯介绍模式的书籍,而是和大家一起探讨OOP,分析OOP给编程带来的好处,希望阅读完本书的人都能开始使用OO的眼光分析问题。 
6. 软件的核心是什么? 
软件的核心是模型,为复杂领域问题提取精炼的模型是根本。我们要学会使用OO这把利器,借助它的眼光来分析问题解决问题,这样才能做出客户满意的软件

  评论这张
 
阅读(513)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017