设计模式群中的一个疑问

设计模式群23998319。对设计模式不感兴趣的勿扰。谢谢!。
昨天新人报道,问了几个问题。

问:什么是设计模式?我一直以为做软件只需要 语言+数据结构。
有人这样回答,我理解数据结构也是一种设计模式。
不过这个我并不苟同。
我所认为数据结构是面向最底层的,而设计模式是面向应用开发的一种策略。数据结构是解决的如何实现,而设计模式是在此实现上面向应用的一种开发策略。

又问设计模式仅仅是针对复用? 
回答:不是仅仅针对复用 扩展啦  还有测试等等,当时自己也就只能想到这些。


提问者 设计模式有什么用?开始看到设计模式这四个字心里总想知道这个问题,不过当真的知道了,就会觉得问这个问题有点傻......(恨不得拿头去撞墙......) 
 设计模式有什么用?设计模式说白了就是一种前人设计代码或者说软件总结出来的模板(很有用的)。我们学习它就是问了经验复用。为了让自己的代码能更好的适应变化,提高程序的可维护性和可扩展性。学写代码就是这样,就是用别人的经验和权威的原则写出能解决客户需求的代码,虽然创新思维是好东西,没必要什么都自己来创造,不可以总结造电灯,自己造个编程语言再自己开发代码。所以学习前者的经验是我们的主流。
 我们是基于一些OOP是设计原则根据不同的需求通过不同的设计模式来到底所说的:更好的适应变化,提高程序的可维护性和可扩展性。 
 
我答:可能你现在开发的软件针对现在的形式是很适合的,但是当你要进行功能或行为上的扩展的话,松耦合的设计就可以使你不必修改多个类来,扩展功能了。其实现在的很多程序员并没有真正的OO 。也包括我,都是针对要求去实现写特定的类,所以我总认为,在编码前面的建模还有分析是很重要的。 

又问:建模就是建立"模式"? 
答 这个“模”不是模式  是模型。就和建筑上的画图差不多 


又问:模型就是指软件的构造(结构)组成对吧?
答:恩  还有构建之间的关系,消息通讯等。


 每一次的提问和回答都最自己的知识有所提高。让我思考更多,比如在问什么是模型的时候,这个确实自己也吃不准。在以前的学习中并没解释过,是很虚幻的概念,可意会不可言传的东西。按照我的理解就是通常建筑上开始时候的设计。

posted on 2009-01-16 09:46 duduli 阅读(1642) 评论(2)  编辑  收藏 所属分类: 设计模式

评论

# re: 设计模式群中的一个疑问 2009-01-18 10:34 Daniel.Shi

1.数据结构是“面向底层”的描述不准确,在具体分层架构中才有底层和上层,数据结构研究的是针对具体问题的算法,使用之处不存在“底层”之说。例如表现层也是需要使用数的算法的,对吧
2. 模式:事物的标准样式。模式就是从日常设计中总结出经典的模板,目的就是为了让经典得以复用,不管是复用在什么场景下(设计、编码、测试)。
3. 模型除了对象结构外,还有关系和条件(限制)。
4. 耦合是很“文”的叫法,说白了就是关系。松耦合,就是弱化关系,我的变化尽量少的影响到你。

另外希望强调的是,所说的设计模式、建模,都是在说面向对象的设计模式、面向对象的建模,因为模式在面向对象成熟之前就已经产生,面向对象的发展实际就是从非面向对象语言上总结了很多的模式而来。ER建模是也建模,数据库的模型依然是会涉及到(实际上一般即使用了ORM,也还要涉及ER模型)。建的模,是在特定技术领域中的模型。在数据库技术上,即使你用OO建模,依然要转换成数据库模型、数据库的语言——我们是受到平台和技术的限制的。
理论上,OO和模式是好的方向,但是实际过程中往往还是需求非OO(表现层语言)和反模式(涉及数据库性能的时候)。不要盲目OO和模式至上,做到完全的面向接口,那么才是最高的境界。  回复  更多评论   

# re: 设计模式群中的一个疑问 2009-01-18 13:14 nokiaguy

设计模式实际上就是编程方式和习惯,是经验的总结,这和生活习惯类似,如果拥有好的生活习惯,你就会很健康,在其他人眼里也会很好,而如果生活习惯不好,时间不顾虑,这当然没什么问题(自我感觉良好),但可能会对自己的健康和其他的方面带来影响(有时会很大)。
设计模式也一样,虽然不使用任何设计模式也可以写任何的软件,但是这就相当于没有好的生活习惯一样,会给这些系统带来很大的麻烦,就象一个人的烟隐很大,长期下去,得肺癌的几率要比不吸烟的人大得多。 而使用设计模式来实现软件,就相当于拥有好的生活习惯,这样会使整个软件系统得到良性的发展。设计模式不是必须的,但拥有它使用生活变得更美好。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年1月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

公告

welcome to my place.

常用链接

留言簿(5)

我参与的团队

随笔分类

随笔档案

新闻分类

石头JAVA摆地摊儿

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

@duduli