"设计模式"的思想

liagl 2003-01-17 11:16:35
看过"设计模式"之后我就在想,这么多的模式都是怎么设计出来的,它们的产生都是什么思想的指导。不过我对哲学不感兴趣,但是我对方法论感兴趣,后来看了一个资料描述了两种软件设计的思想。
一种是抽象,把复杂的东西(关系、活动等)都抽象成对象或接口,设计模式就是例子。一种是分解,又分纵向分解(分层思想,现在流行三层结构)和横向分解(维)。
我仔细想了一下,好象现在软件的设计确实都在这两种思想的指导之下,可惜资料太少没能深入研究,希望能抛砖引玉。
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DavidBone 2003-04-20
  • 打赏
  • 举报
回复
up
arya 2003-01-23
  • 打赏
  • 举报
回复
我认为,在软件结构上可以逻辑地分为三层:应用逻辑层,实现逻辑,和执行逻辑。应用逻辑就是用户应用领域的逻辑,天马行空,各种各样的逻辑都可能有;执行逻辑对应机器语言级别的行为,是最低级的面向机器的逻辑;实现逻辑介于两者之间,上承应用逻辑,下辖执行逻辑,实现两者之间的结合。事实上,这样的结合永远都不可能是完美的,总有取舍权衡。怎么取舍,怎么在两种逻辑之间找到合适的结合点实现这样的结合,是一门艺术。一旦决定如何结合以后,怎么正确有效地实现结合,是科学。
jeffyan77 2003-01-22
  • 打赏
  • 举报
回复
拔出萝卜带出泥,引出一个有趣的问题:软件设计到底是艺术还是科学?呵呵
simon_xu115 2003-01-22
  • 打赏
  • 举报
回复
其实软件设计就是艺术创造,像绘画,建筑,雕刻
所谓设计模式就是在实际的工作中总结出的方法。
jeffyan77 2003-01-21
  • 打赏
  • 举报
回复
有的时候,看一看设计模式的最早发起人是怎么想的,还是有一些指导意义的。

http://www.webendshere.com/javapatterns/faq/faq.html#tech3
computerboy111 2003-01-21
  • 打赏
  • 举报
回复
提供一个稳定的抽象层,对扩展开,对修改闭(OCP)是模式论的总原则
arya 2003-01-20
  • 打赏
  • 举报
回复
软件设计就是一个对问题建模的过程。这个过程不仅是个数学问题,更加是一个认识论问题,是你如何划分实体,以最小的(划分)代价获得最大的模型利益,所谓模型利益,不仅包含用户的功能实现,还包括程序的灵活性。这里的问题在于当需求高度变化的时候,建立起来的模型可以保持划分基本不变,只改变逻辑链接,或者整体基本不变,只加入少量新实体。建议学习Patterns+XP.
liagl 2003-01-20
  • 打赏
  • 举报
回复
不知道大家对软件的设计还有什么心得.
arya 2003-01-17
  • 打赏
  • 举报
回复
我不认为模式是设计出来,我认为它是总结出来的。是从大量重复性的经典性的解决方案中提炼出来的结果。我认为你说的抽象和分解有一定的道理,但是我认为可能这两种方法都是立足于功能之间的相对静止/运动关系上的。抽象是一种捕获相对静止性的手段,而分解则是按照运动的切向来定义实体界面。在分解以后进行抽象。
一切都起源于运动。所谓运动,就是变化,需求的变化,系统运行中各个实体的变化,都是运动的定义来源。
cpunion 2003-01-17
  • 打赏
  • 举报
回复
其实我们平常编程经常用到,只是没有归纳成这些模式罢了,书的作者在有些细节地方比我们处理的好很多,有些模式以前看到过类似代码,还感觉不太好,现在通看全书,理解深了,也就明白了,很自然就能应用上。

50,542

社区成员

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

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