怎样使用设计模式的一点见解。

wwxxdd 2003-04-29 05:28:21
面向对象设计的优点是为软件模型和现实模型提供了一个好的路径。在现实中,我们只有协调好各种不同对象之间的关系,才能让对象之间友好的相处。在软件中,我们同样也需要这种协调。设计模式就是协调这种关系的一些已证明的在某些情境下可用的较优解决方法。
举个例子,人生病了(当然,最好不是SARS)要去医院,如果是日常小病,随便找个医院,如果是某种特殊的病,就会去选择治这种特殊病的医院。这时,人会先估计自己的病,然后找到相应种类较合适的医院(可以查地图或其它)。这在软件中,是策略模式的体现。因为人最初只是和抽象的医院建立关系,而非某一具体医院,只在确定自己的病种类后,才选择具体的医院。而我们查自己所需的医院时,可以是自己知道的,也可以是查地图,还可以是问别人的,这种获取医院地址的方法显然可以用工厂模式来解决。
将软件之间的关系处理得像在日常中的事物的关系一样的融洽,这或许是面向对象设计的终极目标。
...全文
107 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gucs 2003-05-30
  • 打赏
  • 举报
回复
学习

=================

一代过去,一代又来,地却永远长存。日头出来,日头落下,急归所出之地。
风往南刮,又往北转,不住的旋落,而且返回转行原道,江河都往海里转,海
却不满,江河从何处流,仍归何处。
wwxxdd 2003-05-10
  • 打赏
  • 举报
回复
我觉得,如果你把现实模型中的事物和软件对象中的类强行去类比,肯定这种映射是行不通的。其实,重要的是将软件模型中的类和现实模型中的事物同时向上抽象,找出其中关系的共性。因为现实模型中的事物的耦合关系是经无数代人的经验证明,其耦合性是很合理的。
因此,并不是将现实模型强行和软件模型来一一映射,而是将现实模型中事物关系的特点作为软件中抽象到一定层次中类之间优劣关系的判断原则,这种判断方法是非常可行的,如果你理解到一定程度,不妨试一下。
gameboy999 2003-05-09
  • 打赏
  • 举报
回复
模式是前人和强人总结的成功经验,不学为己用,岂不是太亏
有兴趣的可以看看这个,挺不错的
http://www.jdon.com/designpatterns/index.htm
liyi2226781 2003-05-09
  • 打赏
  • 举报
回复
UP
pig345 2003-05-09
  • 打赏
  • 举报
回复
严重同意 hoper1()
hoper1 2003-05-07
  • 打赏
  • 举报
回复
将软件系统与现实世界作类比,是一种很好的意境,但不是贴切的方法。
面向对象设计的关键在于合理地抽象出类和类之间的接口。而实际上,抽象出的类与现实世界的东西往往是不同的。如果软件系统和现实系统是一个映射关系的化,这个软件系统根本不可能有稳定的架构。
存在一些错误观念的根本原因是大家为了说明面向对象的概念,往往举一些猫呀狗呀的例子。
引用《设计模式》中的一句话:
虽然设计的很多对象来源于现实世界的分析模型。但设计结果所得到的类通常在现实世界并不存在。
nettman 2003-05-06
  • 打赏
  • 举报
回复
是呀!
OO技术能够更好的反映现实世界!
asiaec 2003-05-06
  • 打赏
  • 举报
回复
面向对象的核心就在于: 实现软件系统和现实系统较好的映射关系

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧