java学习 第二章 设计模式基础

1.什么是模式?

从字面上理解,模:就是模型、模版的意思,式:就是方式、方法意思。综合起来所谓模式就是:可以当作模型或模版的方式方法。再直白点说就是可以用来当成样板被参考的方式方法,类似于大家熟悉的范例。

按照上面的理解,设计模式就是指的设计方面的模式,也就是设计方面的方式方法。

2.设计模式是解决方案

所谓解决方案,就是解决方法,或者是解决的方式。

3.设计模式是用于解决特定环境下、重复出现的特定问题的解决方案

特定环境:任何问题都是在某些场景下才会出现

特定问题:说明这个解决方案不是什么问题都能解决,只能解决某些特定的问题

重复出现:这样把解决方案总结出来才有意义,以后还可以继续使用。

4.设计模式是经过验证的,用于解决特定环境下、重复出现的特定问题的解决方案。

经过验证,说明这个设计模式是相对比较优秀的方案,是可行的方案,这样才具有学习、研究和使用的价值。

5.设计模式的理解

5.1 是一些解决问题的方法,当然主要是设计方面的,重在思想和方法上。

5.2 是经验的积累,从理论上说,设计模式并不一定是最好的,可能有比设计模式更好的解决方案。

5.3 设计模式并不是一成不变的,是在不断的发展中的

5.4 设计模式并不是软件业独有,各行各业都有自己的模式

6.设计模式能干什么

设计模式能让我们复用一些相对优先的解决方案,从而让程序设计得比较精良,还能够加快程序的设计和开发。

7.设计模式有什么

描述一个设计模式,通常包含如下四个部分:

模式名称:就是为每个设计模式取个名字,好记忆好交流

环境和问题:描述在什么场景下,出现什么样的特定的问题

解决方案:描述如何解决这个问题

效果:描述模式可能带来的问题,或者使用中需要权衡的问题

还有另外一种分法:

Java设计模式:就是GoF《设计模式:可复用面向对象软件的基础》一书中提到的23种。

JEE核心设计模式:sun的《J2EE核心设计模式》一书中提到的15

EJB设计模式

实时设计模式:就是实时系统设计模式

多线程(网络、Swing等等)设计模式等等。

8.为什么要学习设计模式?

8.1 设计模式都是一些相对优秀的解决方案,很多问题都是典型的、有代表性问题,学习设计模式,我们就不用自己从头来解决这些问题,相当于站在巨人的肩膀上,复用这些方案即可。

8.2 设计模式已经成为专业人士的常用词汇,不懂不利于交流。

8.3 能让你设计的系统更加专业,让系统有更好的架构。

9. 学习设计模式的层次

9.1 基本入门型——套用

能够正确理解和掌握每个设计模式的知识,能够识别在什么场景下,出现了什么特定问题,并且知道如何解决它,然后能在程序设计和开发中套用设计模式的方案。

9.2 基本掌握级——可变形使用型(根据实际问题变通使用)

9.3 真正理解和掌握级——思想上吸收和趋同型

人剑合一,无招胜有招。

思想上吸收:出手就这样,向大师学习。理论指导实践,实践中领悟。

10. 设计模式怎样解决设计问题

10.1 寻找合适的对象

面向对象设计最困难的部分是将系统分解成对象集合。因为要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、演化(可维护性、可扩展性等)、复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的。

10.2 决定对象的粒度

10.3 指定对象接口

在面向对象系统中,接口是基本的组成部分。对象只有通过它们的接口才能与外部交流。设计模式通过确定接口的主要组成成分及经接口发送的数据类型,来帮助你定义接口。设计模式也许还会告诉你接口中不应该包括哪些东西。设计模式也指定了接口之间的关系。

10.4 描述对象的实现

10.5 设计应支持变化

获得最大限度复用的关键在于对新需求和已有需求发生变化时的预见性,需求你的系统设计要能够相应地改进。

为了设计适应这种变化、且具有健壮性的系统,你必须考虑系统在它的生命周期内会发生怎样的变化。一个不考虑系统变化的设计在将来就有可能需要重新设计。这些变化可能是类的重新定义和实现,修改客户和重新测试。重新设计会影响软件系统的许多方面,并且未曾料到的变化总是代价巨大的。

设计模式可以确保系统能以特定方式变化,从而帮助你避免重新设计系统。每一个设计模式允许系统结构的某个方面的变化独立于其它方面,这样产生的系统对于某一种特殊变化将更健壮。

 

真诚推荐:南京java学习

 

posted on 2013-05-10 20:32  时空圣主  阅读(97)  评论(0)    收藏  举报

导航