阎宏博士的微软在线技术聊天(转)

设计模型

主持人和专家介绍
Grace : 大家好!欢迎进入微软在线技术聊天。我们的聊天将于11点准时开始。今天我们请到了微软最有价值专家 阎宏博士。欢迎您,阎博士!
阎宏 : 大家好!
Grace : 主持人简介:阎宏,微软MVP,1964年出生于天津市。1987年毕业于中国科技大学近代物理系,1990年于中科院理论物理所获硕士学位,1992年获博士学位,翌年赴日本京都大学进行博士后研究工作。 作者曾于美国花旗银行(Citibank)、汤臣金融(Thomson Financial)、奥本海默基金(Oppenheimer)等处供职,进行了多年的软件开发、架构设计和技术管理工作。 著有《Java与模式》(电子工业出版社2002年10月1日出版)
阎宏 : 谢谢你,Grace
阎宏 : 我很高兴能有这个机会和大家一同探讨设计模式的问题
Grace : 聊天室的主題:设计模型
Grace : 大家请在下面的窗口贴出问题,阎博士将在上面的窗口回答。谢谢!

来宾提问Q和专家解答A
阎宏 : Q: 能推荐几本有关设计模式的经典书籍吗,国内好像只有一本机械工业的《设计模式》 A: 《设计模式》是一本经典著作,也是一本学术著作,并不容易当作教材阅读。 我写的《Java与模式》是以Java语言讲解的。.NET语言比较新,还没有中文的教材书。不过我正在写一本,暂定名《.NET与模式》。我会将一部?
阎宏 : 对《Java与模式》感兴趣的读者,可以到下面的网址: http://www.china-pub.com/computers/common/info.asp?id=8182
阎宏 : Q: Is it necessary to use Facade Pattern on top of business layer based on User Case?
阎宏 : A:Façade模式通常用于封装一个子系统。如果没有子系统,也就谈不上Façade。
阎宏 : Q:什么是设计模式
阎宏 : A:简单地讲,设计模式就是设计范例。
阎宏 : Q:什么是MVC模式
阎宏 : A:所谓的MVC模式,即模型-视图-控制器(Model-View-Controller)模式。MVC模式 常常作为一个设计模式出现在各种讨论中,但是MVC模式实际上是架构模式,而不 是设计模式。 如果硬要把MVC模式与前面所讨论的设计模式对上号的话,那么它在大部份情况下 是下面几个模式之一: Strategy模式 Mediator模式 Composite模式 Ob
阎宏 : Q:什么是设计范例?
阎宏 : A:设计范例,就是好的设计
阎宏 : Q:.net如何利用MVC
阎宏 : A:说的简单一点,就是将商业逻辑、用户界面,以及这两者之间的协调(Controller) 如果再讲的具体一点,就是恰当地使用相关的几个更为基本的设计模式,包括 Strategy模式 Mediator模式 Composite模式 Observer模式 等等,因为MVC就是这些设计模式的混合。
阎宏 : Q:什么时候应该使用设计模式 什么时候不应该使用设计模式
阎宏 : A:这是一个没有答案的问题。一般来说,设计模式是在重构过程当中反复出现的设计范例, 到底一个系统应当使用什么样的设计模式,无法在项目刚一开始的时候就知道。
阎宏 : Q:能不能讲一讲使用设计模式就注意的问题 或者设计模式的缺点
阎宏 : A:可以。使用设计模式要注意首先要理解软件需求,然后需要理解OO理论和模式理论,最后要正确地讲设计模式应用待自己的系统中去。 最后需要注意的是,使用什么设计模式,往往需要在对代码进行反复重构的过程当中才能知道。也就是说,没有人能够准确预测需要使用什么模式。
阎宏 : Q:完全是为了用模式而用模式会不会造成过度使用设计模式?
阎宏 : A:会的。不要过度追求使用模式。要从自己的软件需求出发,找到最能体现需求的设计。不要以为使用了模式就是好设计。
阎宏 : Q:: 您喜欢JAVA还是C#
阎宏 : A: 我都喜欢。说起来你可能不信,我最喜欢的还是VB.NET
阎宏 : Q:照您所说££¬设计模式一般在后期重构才会清晰£¬那是不是前期设计阶段无法使用设计模式£¿
阎宏 : S Arial\bUnicode\bMS;136 A:是的,但不绝对。设计经验常常能起很大作用。经验多的人,对软件需求了解多的人,往往可以在软件设计的初期就看到系统以后可能的走向。这个时候,设计模式就可以派上用场。 设计模式解决的是系统的扩展性。一个设计模式总是允许系统(在某些方向上)易于扩展。我们把这个叫做"开闭"原则?
阎宏 : Q:再问一个问题,一个好的系统构架师应具备怎样的基本素质
阎宏 : A:系统架构师应当了解需求、了解Usability和OO设计。
阎宏 : Q:vb.net 的语法不够c#方便吧?
阎宏 : A:是的。VB.NET的语法比较cumbersome
阎宏 : A:是的。VB.NET的语法比较cumbersome。我喜欢VB.NET是因为这是一个从VB发展而来的语言,而VB是如此具革命性。
阎宏 : Q:模式有无大小之分?
阎宏 : S Arial\bUnicode\bMS;136 A:确切地讲,模式没有大小之分。但是模式有种类之分。 模式的种类 由于[GOF95]是论述软件模式的著作的第一本,也是OO设计理论著作中最流行的一本,因此有些人常常使用设计模式(Design Pattern)一词来指所有直接处理软件的架构、设计、程序实现的任何种类的模式。另外一些人则强调要划分三种不同层?
阎宏 : Q:请问博士,新手能不能从模式学起
阎宏 : A:如果你对语言的特性还不了解,我建议你从语言开始。如果你对语言很了解了,语言不在是一个障碍了,那么试着学习一些OO的理论。设计模式还属于比较高级一点的知识。
阎宏 : Q:: 阎宏博士 : 我觉得Template Method等把方法延伸到子类的模式应用实在太多了。它们不应该归纳成模式吧?
阎宏 : A:我有同感。严格地讲,Template Method不是一个设计模式,而应当是一个架构模式。
阎宏 : Q: 我学习了一段时间的J2EE设计模式,感觉里面角色是在太多了,简直有点恐怖
阎宏 : A:我同意你的观点!实际上,J2EE模式简直就是粗制滥造出来的。那本书我看的时候头皮发麻。
阎宏 : Q: 能否详细说一下构架模式,它与设计模式的区别.?请举几种常用的构架模式?
阎宏 : S Arial\bUnicode\bMS;136 A:一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些事先定义好的子系统, 指定它们的责任,并给出把它们组织在一起的法则和指南。有些作者把这种架构模式叫做系统模式[S TELTING02]。 一个架构模式常常可以分解成很多个设计模式的联合使用。显然,MVC模式就是属于这一种模式?
阎宏 : Q:既然是分层,我问博士一下,模式与模块有什么区别和联系?
阎宏 : A:设计模式和模块没有必然的关系。但是设计模式通常使用class module,code module实现。
阎宏 : Q: 书上说的那23种模式已经过了很久了,现在出了什么模式呢?在哪里能得到资料?
阎宏 : A: 美国和欧洲每年都有大会,研究者们可以公布自己的模式研究成果。最新的成果可以在下面的会议文集中看到:
阎宏 : 此外,Linda Rising有一本《Pattern Almanac》里面收集了到2000年为止所有的模式
阎宏 : Q:《.NET与模式》主要介绍什么内容?
阎宏 : A:这是我正在写的一本书,主要内容是OO设计原则、30各经典设计模式、.NET语言中设计模式的应用
阎宏 : Q:什么会议文集?
阎宏 : A:这是其中一本:Neil Harrison , Brian Foote, Hans Rohnert, Pattern Languages of Program Design, Addison-Wesley 你到amazon.com可以根据这一本找到相关的其他几本。
阎宏 : Q: 请问 阎宏博士 能公布email不 ?
阎宏 : A:可以:JavaPatterns@hotmail.com 聊天之后如果有问题,欢迎到我的论坛: www.WebEndsHere.com继续探讨。
阎宏 : Q:现在大家都在学习设计模式,但是有时候也被设计模式蒙住了眼睛,都看不见其他的了。能不能请 您概括地说一下,模式在软件工程中处于什么样一个地位?
阎宏 : A:对于架构师来说,设计模式是必须了解的。但是模式并不是一个可以套来套取的死东西,需要灵活运用。要理解设计模式背后的道理,然后运用这个道理,不要照抄设计模式。
阎宏 : Q:Can I grasp design pattern in a short period as long as two months?
阎宏 : A:那要看你现在的水平。如果你对OO理论很熟,那么这是可能的。
阎宏 : Q:why you choose webendshere as the tittle?
阎宏 : A:意思是Web Ends Here。
阎宏 : Q: 博士:能说说一个项目从开始到找到适用的模式需要那些步骤?
阎宏 : S Arial\bUnicode\bMS;136 A:一个项目开始设计了,这个时候首先要有软件需求,然后通常会有Usability设计(基本上就是GUI设计),然后是System Analysis。对于架构师来说,初步的设计可以有一个prototype,如果系统不复杂,也有可能没有原型。初步设计之后,是反复的重构过程。在重构过程中会出现一些地方需要扩展,如果在尽量不??
阎宏 : Q rototype是不是和AbstractFactory相冲突呢? 如果一个类有 3 个子类和相关的Factory,那么是不是要4个prototype ?
阎宏 : A:是的。他们都是创建型模式。
阎宏 : Q:能说说"策略"吗?
阎宏 : A:一种设计模式,
阎宏 : Q:博士,在什么地方能经常找到您,希望能获得您的指点
阎宏 : A:到我的论坛 www.WebEndsHere.com

结束语
Grace : 感谢大家的参与.感谢微软最有价值专家阎宏博士的精彩回答。本次在线技术聊天即将圆满完成
Grace : 假如你还有问题,请在微软中文新闻组提问或访问阎宏博士的论坛 www.WebEndsHere.com 。
Grace : 微软中文新闻组,<http://www.microsoft.com/china/community/newsgroup.asp>
Grace : 我们每周四都有online chat, chat 的预告和整理请见http://www.microsoft.com/china/community/chat/chat.asp。谢谢大家的关注和参与!
Grace : 再次感谢阎宏博士!
Grace : 谢谢您!
阎宏 : 谢谢Grace,谢谢各位
Grace : 再见!

转自:http://www.microsoft.com/china/community/chat/chatrecord/chat20030612.mspx

转载于:https://www.cnblogs.com/renrenqq/archive/2004/07/03/20762.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值