设计模式是什么
1.什么是模式?
·从字面上理解,模,就是模型,模版的意思,式,就是方式,方法的意思。综合起来所谓i的模式,就是可以当作模型模版的方式方法。
再说直白点就是用来当成样板被参考的方法,类似大家熟悉的范例
按照上面的理解,设计模式就是指的是设计方面的模式,也就是设计方面的方式方法
2.设计模式就是解决方案
所谓解决方案,就是解决办法,或者解决的方式
3.设计模式是用于解决特定环境下,重复出现的特定问题的解决方案
特定环境:任何问题都是在某些场景下才会出现的
特定问题:说明这个解决方案不是什么问题都能解决,只能解决某些特定的问题
重复出现:这样把解决方案总结出来才有意义,以后还可以继续使用
4.设计模式是经过验证的,用于解决特定环境下,重复出现的特定问题的方案
经过验证,说明这个设计模式是相对于比较优秀的方案,是可行的方案,这样才具有学习,研究和使用的价值
5.设计模式的理解
1.是一些解决问题的方法,当然主要是设计方面,。重在思想和方法
2.是经验的积累,从理论上说,设计模式并不一定是最好的,可能有比设计模式更好的解决方案
3.设计模式并不是一成不变的,是在不断发展中的
4.设计模式并不是软件业独有的,各行各业都有自己的模式
6.设计模式能干什么
设计模式能让我们复用一些相对优秀的解决方案,从而让程序设计得比较精良,还能够加快程序的设计和开发
7.设计模式有什么
描述一个设计模式,通常包含如下四个部分:
模式名称,就是为每个设计模式取个名字,好记忆好交流
环境和问题:描述在什么场景下,出现什么样的特定的问题
解决方案:描述如何解决这个问题
效果:描述模式可能带来的问题,或者使用中需要权衡的问题
还有另外一种分法:
java设计模式:就是GOF《设计模式:可复用面相对象软件的基础》一书中提到的23种
J2ee核心设计模式:sun的《J2EE核心设计模式》一书提到15种
EJB设计模式
实时设计模式,就是实时系统设计模式
多线程设计模式
设计模式学习的问题
1.为什么要学习设计模式
1.设计模式都是一些相对优秀的解决方案,很多问题都是典型,有代表性的问题 ,学习设计模式,我们就不用自己从头来解决问题,相当于站在巨人的肩膀上,复用这些方案即可
2.设计模式已经成为专业人士的常用词汇,不懂不利于交流
3.能让你设计的系统更加专业,让系统有更好的架构
2.学习设计模式的层次
1.基本入门级---套用层
能够正确理解和掌握每个设计模式的知识,能够识别在什么场景下,出现了什么特定的问题,并且知道如何解决它,然后能在程序设计和开发中套用设计模式的方案
2.基本掌握型--可变形使用型
3.真正理解和掌握级---思想上吸收和趋同型
设计模式怎样解决设计问题---1
1.寻找合适的对象
面相对象设计最困难的部分是将系统分解成对象集合,因为要考虑许多因素,封装,粒度,依赖关系,灵活性,性能,演化,复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的
2.决定对象的粒度
3.指定对象接口
在面相对象系统中,接口是基本的组成部分,对象只有通过她们的接口才能与外部交流,设计模式通过确定接口的主要组成成分及经接口发送的数据类型,来帮助你定义接口,设计模式也许还会告诉你接口中不应该包括哪些东西,设计模式也指定了接口之间的关系
4.描述对象的实现
5.设计应支持变化
获得最大限度复用的关键在于对新需求和已有需求发生变化时的预见性,要求你的系统设计能够相应地改进
为了设计适应这种变化,且具有健壮性的系统,你必须考虑系统在它的生命周期内会发生怎样的变化,一个不考虑系统变化的设计在将来就有可能需要重新设计,这些变化可能是类的重新定义和视线,修改客户和重新测试,重新设计会影响软件系统的许多方面,并且未曾料到的变化总是代价巨大
设计模式可以确保系统能以特定方式变化,从而帮助你避免重新设计系统,每一个设计模式允许系统接口的某个方面的变化独立于其他方面,这样产生的系统对于某一种特殊变化将更健壮
浙公网安备 33010602011771号