- 浏览: 134678 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
zfcejb:
你好,这X-gen有源码参考吗
X-gen PPT下载——《研磨设计模式》 实战 -
1927105:
LZ研究过Hibernate4里的监听时间吗?我这边用4.3. ...
Hibernate4实战 之第六部分:基本实现原理 -
hbbbs:
看介绍 挺美的!
X-gen PPT下载——《研磨设计模式》 实战 -
jenmhdn:
即这个是综合运用设计模式的
X-gen PPT下载——《研磨设计模式》 实战 -
jenmhdn:
很值得一看
X-gen PPT下载——《研磨设计模式》 实战
提前声明
本视频课程是北京Java私塾原创精品书籍《研磨设计模式》一书的配套学习视频,由《研磨设计模式》的第一作者CC录制
建议结合《研磨设计模式》一书进行学习,效果会更佳
《研磨设计模式》一书,知识全面、系统、实用。在知识的准确度、广度、深度、实用性、与实际项目结合的程度等方面,在国内原创设计模式书籍中,以绝对的优势排名第一,是学习设计模式的最佳读物之一
整体课程概览
整体课程内容
一:设计模式基础
包括:设计模式是什么、有什么,以及学习设计模式的学习方法等
二:热身运动:简单工厂模式
三:GoF著作中所讲述的23个设计模式
包括:外观模式、适配器模式、单例模式、工厂方法模式、抽象工厂模式、生成器模式、原型模式、中介者模式、代理模式、观察者模式、命令模式、迭代器模式、组合模式、模板方法模式、策略模式、状态模式、备忘录模式、享元模式、解释器模式、装饰模式、职责链模式、桥接模式、访问者模式
四:综合讲述所有模式的相关模式
包括:相关模式的辨析、比较、选择以及组合使用等
本节课程概览
学习设计模式基础
一:设计模式是什么
包括:什么是模式、设计模式的概念、设计模式的理解、设计模式的历史
二:设计模式有什么
包括:设计模式的组成、设计模式的分类、设计模式和面向对象设计原则、设计模式和UML、设计模式和设计工具、设计模式和重构
三:设计模式的学习
包括:为什么要学习设计模式、学习设计模式的层次、如何学习设计模式
四:每个模式的讲述结构
包括:初始某个设计模式、体会某个设计模式、理解某个设计模式、思考某个设计模式
设计模式是什么
什么是模式
从字面上理解,模:就是模型、模板的意思;式:就是方式、方法的意思。综合起来所谓模式就是:可以当作模型或模板的方式方法。再直白点说就是可以用来当成样板被参考的方式方法,类似于大家熟悉的范例。
按照这个理解,设计模式就是指的设计方面的模板,也就是设计方面的方式方法。
设计模式的概念
设计模式是:在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。
设计模式的理解
1:设计模式是解决某些问题的办法
2:设计模式不是凭空想出来的,是经验的积累和总结
3:设计模式并不是一成不变的,而是在不断的发展中
4:设计模式并不是软件行业独有的,各行各业都有自己的设计模式
用大家身边的例子来说,比如医药行业,就有自己的设计模式。假设一个人感冒了,到药店买点感冒药来吃,这个感冒药就是设计模式的一个很好体现。
经过验证的:药品上市前,会有大量的验证和实验,以保证药品的安全性
特定环境下:这些药品是针对人的,不是针对其它动物的
重复出现的:正是因为感冒会重复出现,研制药品才是有意义的
特定问题:感冒药只用来解决感冒问题,不能解决其它问题,比如脚痛
解决方案:药品本身就是个解决方案的具体体现
经过上面的比较,你会发现,医药行业对设计模式的体现,一点不逊色于软件行业。事实上,很多行业都有自己的设计模式。就算设计模式本身也不是起源于软件行业,而是起源于建筑业。
设计模式的历史
设计模式起源于建筑行业,一位名叫Alexander的建筑师,发现并总结了一些建筑行业的设计模式。
在上世纪90年代中,准确地说是1995年,由Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides合著的《设计模式——可复用面向对象软件的基础》一书的出版,正式掀开了在软件业设计模式的序幕,这本书的四位作者被世人称为四人组,也有称为四人帮的,也就是大家熟见的GoF(Gang of Four)。
设计模式的组成
在描述一个设计模式的时候,通常会有如下部分:
1:模式名称:就是为每个设计模式取个名字,好记忆,也好交流
2:环境和问题:描述在什么场景下,出现什么样的特定的问题
3:解决方案:描述如何解决这个问题
4:效果:描述模式应用的效果,以及可能带来的问题,或者使用中需要权衡的问题
上面是对单个设计模式来说的,在Java领域,对于设计模式的组成还有另外一种分法,就是按照设计模式所在的技术领域来划分,大致分成:
1:Java设计模式:通常指GoF的《设计模式——可复用面向对象软件的基础》一书中提到的设计模式
2:JEE设计模式:通常指SUN的《J2EE核心设计模式》一书中提到的设计模式
3:其它领域的,包括但不限于:EJB设计模式、实时系统设计模式、多线程设计模式、架构模式等等
设计模式的分类
为了缩小范围,我们仅讨论Java设计模式,也就是GoF著作中提到的23个设计模式。对于这23个设计模式的分类,GoF把它们分为三类:
1:创建型模式:抽象了对象实例化的过程,用来帮助创建对象的实例
2:结构型模式:描述如何组合类和对象以获得更大的结构
3:行为型模式:描述算法和对象间职责的分配
当然也有按其它方式进行分类的,这里就不去讨论了。
设计模式和面向对象设计原则
面向对象的分析设计有很多原则,这些原则大都从思想层面,给我们指出了面向对象分析设计的正确方向,是我们进行面向对象分析设计应该尽力遵守的准则。
而设计模式已经是针对某个场景下某些问题的某个解决方案。也就是说这些 设 计原则是思想上的指导,而设计模式是实现上的手段,因此设计模式也是应该遵守这些原则的,换句话说, 设计模式就是这些设计原则的一些具体体现。
为何不重点讲述面向对象设计原则
1:设计原则本身是从思想层面上进行指导,本身是高度概括和原则性的,只是一个设计上的大体方向,其具体实现并不是只有设计模式这一种。理论上来说,可以在相同的原则指导下,做出很多不同的实现来。
2:每一种设计模式并不是单一的体现某一个设计原则,事实上,很多设计模式都是融合了很多个设计原则的思想,并不好特别强调设计模式对某个或者是某些设计原则的体现。而且每个设计模式在应用的时候也会有很多的考量,不同使用场景下,突出体现的设计原则也可能是不一样的。
3:这些设计原则只是一个建议指导,事实上,在实际开发中,很少做到完全遵守,总是在有意无意的违反一些或者是部分设计原则。设计工作本来就是一个不断权衡的工作,有句话说得很好:“ 设计是一种危险的平衡艺术”,设计原则只是一个指导,有些时候,还要综合考虑业务功能、实现的难度、系统性能、时间与空间等很多方面的问题
4:设计模式本身已经很复杂了,在一门课程里面很难再去深入的探讨这些设计原则,这样也避免出现过多的重点内容,导致大家无所适从
设计模式和UML
1:UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。
2:设计模式和UML本身没有任何联系
3:可以使用UML来图形化表示设计模式的:设计结构、调用顺序等,方便交流
4:完全可以不使用UML,可以使用任何易于交流和表达的方式来表示设计模式的:设计结构、调用顺序等
设计模式和设计工具
1:设计模式重在设计、重在思想、重在解决方案,跟使用什么样的设计工具,没有任何关系
2:使用设计工具,能有效地帮助我们去表达应用设计模式设计出来的成果,并对这些成果进行管理和维护
3:完全可以不使用任何设计工具
设计模式和重构
1:设计模式是重构的目标,重构是达到目标的手段
2:重构并不排斥提前设计,重构并不是不需要设计
3:合理的提前设计 + 重构来不断的改进设计 ==〉趋近于优秀的系统
设计模式的学习
为什么要学习设计模式
1:软件开发越来越复杂,对软件设计的要求也越来越高,而 软件设计和架构的入门功 夫就是深入理解和掌握设计模式,因此,设计模式的重要性不言而喻。
2:设计模式已经成为软件开发人员的“标准词汇”
3:学习设计模式是个人提高的捷径
4:不用重复发明轮子
学习设计模式的层次
1:基本入门级:
要求能够正确理解和掌握每个设计模式的基本知识,能够识别在什么场景下,出现了什么样的问题,采用何种方案来解决它,并能够在实际的程序设计和开发中套用相应的设计模式
2:基本掌握级:
除了具备基本入门级的要求外,还要求能够结合实际应用的场景,对设计模式进行变形的使用。
事实上,实际开发中,经常会碰到跟标准模式的应用场景有一些不一样的情况,此时要合理的使用设计模式,就需要对它们做适当的变形,而不是僵硬的套用了。当然能变形的前提是要能准确深入的理解和把握设计模式的本质, 万变不离其宗,只有把握住本质,才能够确保 正确变形使用而不是误用。
3: 深入理解和掌握级:
除了具备基本掌握级的要求外,更主要是从思想上和方法上吸收设计模式的精髓,并融入到自己的思路里面去,在进行软件的分析设计的时候,能随意的、自然而然的应用,就像是自己思维的一部分。
事实上,实际开发中,稍微复杂点的应用,在解决某个问题的时候,就不再是单一的应用某一个设计模式,而是综合应用很多的设计模式。例如:结合着某个具体的情况,很可能需要把模式A进行简化,然后结合上模式B的一部分,再组合应用变形的模式C……,如此来解决实际的问题。
更复杂的是除了考虑这些设计模式外,还可能需要考虑系统整体的体系结构、实际功能的实现、与已有功能的结合等等。这就要求在应用设计模式的时候,不拘泥于设计模式本身,而是从思想和方法的层面进行应用。
简单点说,基本入门级就是套用使用,相当于能够依葫芦画瓢,很机械;基本掌握级就是能变形使用,比基本入门级稍灵活一些,可以适当变形使用,但还是比较匠气;深入理解和掌握级才算是真正的把设计模式的精髓吸收了,是从方法和思想的层面去理解和掌握设计模式,就犹如练习武功到最高境界,开始“无招胜有招”了。要达到这个境界,没有足够的开发、设计经验,没有足够深入的思考,是不太可能的。
至于有些朋友说:设计模式的书我看了不少,觉得都看懂了,就是不知道在实际开发中怎么用这些设计模式,从而认为设计模式是“看上去很美”的“花拳绣腿”。那么“恭喜”这些朋友,你正处于对“ 设计模式了解级”,根本还没有入门。
如何学习设计模式
结合自身的经验,给出如下学习设计模式的建议:
1:首先要调整好心态,不要指望一蹴而就,不可浮躁
学习和掌握设计模式是需要有一个过程的,不同的阶段看这些设计模式会有不同的领悟和感受。不要指望真正的设计模式的课程是又简单又有趣的,一看就懂的,那种课程多是属于科普性质的,只是让你简单了解一下设计模式。这也是为何很多朋友总感觉“懂”设计模式,却不会在实际项目中应用设计模式了,因为你“懂”的程度不够。
要想真正理解和掌握,必须要上升到一定的难度和深度,让你学完后思考,思考后应用,然后再学、再思考、再应用,如此反复,方能成就。
“鱼和熊掌不可兼得”,因此,本课程尽量在内容的深度、难度和讲述的通俗易懂、简单明了上进行平衡,以期让大家能以相对较小的力气去真正理解和掌握设计模式。
2:学习设计模式的第一步:准确理解每个设计模式的功能、基本结构、标准实现,了解适合使用它的场景以及使用的效果
3:第二步:在实际的开发中,尝试着使用这些设计模式,并反复思考和总结是否使用得当,是否需要做一些变化
4:第三步:再回头去看设计模式的理论,有了实际的模式应用经验再看,会有不同的感悟,一边看一边结合着应用经验来思考。比如:设计模式的本质功能是什么?它是如何实现的?这种实现方式还可以在什么地方可以应用上?如何才能把这个设计模式和具体的应用结合上?这个设计模式设计的出发点是什么?等等。可以有很多考虑的点,从不同角度对设计模式进行思考
5:第四步:多次重复第二步和第三步。也就是在实际开发中使用,然后结合理论思考,然后再应用,再思考……,如此循环反复多次,直到达到对设计模式基本掌握的水平
简而言之,大家要注意让设计模式的理论和实践相结合,理论指导实践,实践反过来加深对理论的理解,如此反复循环,成螺旋式上升。
事实上,到了基本掌握设计模式的水平后,最后能达到一个什么样的高度,因人而异,得看个人的思维水平和理解水平,对于这个阶段,只有一个建议,那就是反复的、深入的思考,别无它法,到了思想的层面,就得靠“悟”了。
每个模式的讲述结构
初始某个设计模式
包括这个模式的:定义、结构、参考实现
体会某个设计模式
包括:场景问题、不用模式的解决方案、使用模式的解决方案
理解某个设计模式
主要是模式讲解部分,包括:认识某个模式、针对各个重点难点功能,或是与实际应用结合的讨论和示例、模式的优缺点
思考某个设计模式
包括:模式的本质、对设计原则的体现、何时选用
对每一个设计模式进行内容分级
1: 初级内容:从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等等,让读者能系统、完整、准确的掌握每个模式,培养正确的“设计观”
2: 中高级内容:深入探讨如何理解这些模式,模式中蕴含什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点,和其它模式的关系等等,以期让读者尽量去理解和掌握每个设计模式的精髓所在
本课程在内容上深入、技术上实用、和实际开发结合程度很高,课程中大部分的示例程序都是从实际项目中简化而来,因此很多例子都可以直接拿到实际项目中使用。如果你想要深入透彻的理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的课程。
配套视频课程:【 http://sishuok.com/product/501】
私塾在线学习网原创内容,转载请注明【http://sishuok.com/forum/blogPost/list/5664.html】
评论
2 楼
yoyo837
2012-08-22
jiangshoujun9819 写道
内容倒是很好,但怎么总感觉有植入广告的嫌疑呢
应该是在推广吧
1 楼
jiangshoujun9819
2012-08-22
内容倒是很好,但怎么总感觉有植入广告的嫌疑呢
发表评论
-
原型模式——研磨设计模式——跟着cc学设计系列
2012-09-03 12:27 1064本节课程概览 学习抽象工厂模式 一:初识抽象 ... -
生成器模式——研磨设计模式——跟着cc学设计系列
2012-08-31 06:14 1170本节课程概览 学 ... -
抽象工厂模式——研磨设计模式——跟着cc学设计系列
2012-08-29 13:40 823本节课程概览 学 ... -
Hadoop实战-初级部分 之 Hadoop IO
2012-08-25 13:09 1003私塾在线《深入浅出学 Hadoop- 初 ... -
研磨设计模式——跟着cc学设计系列 汇总贴
2012-08-25 13:09 1006课程地址:http://sishuok.com/pr ... -
研磨设计模式——跟着cc学设计系列 汇总贴
2012-08-25 06:32 123课程地址:http://sishuok.com/p ... -
Hadoop实战-初级部分 之 Hadoop IO
2012-08-25 06:31 132私塾在线《深入浅 ... -
相关模式辨析——研磨设计模式——跟着cc学设计系列
2012-08-24 20:02 756本节课程概览 相关模式 关于相关模式的辨 ... -
抽象工厂模式——研磨设计模式——跟着cc学设计系列
2012-08-24 12:11 857本节课程概览 学习抽象工厂模式 一:初识抽象 ... -
单例模式——研磨设计模式——跟着cc学设计系列
2012-08-24 12:10 31本节课程概览 学 ... -
单例模式——研磨设计模式——跟着cc学设计系列
2012-08-24 11:49 7本节课程概览 学习单例模式 一:初识单例模式 ... -
抽象工厂模式——研磨设计模式——跟着cc学设计系列
2012-08-24 11:49 7本节课程概览 学习抽象工厂模式 一:初识抽象 ... -
抽象工厂模式——研磨设计模式——跟着cc学设计系列
2012-08-24 09:37 35本节课程概览 学习抽象工厂模式 一:初识抽象 ... -
抽象工厂模式——研磨设计模式——跟着cc学设计系列
2012-08-24 09:00 48本节课程概览 学习抽象工厂模式 一:初识抽象 ... -
工厂方法模式——研磨设计模式——跟着cc学设计系列
2012-08-23 11:44 957本节课程概览 学 ... -
研磨设计模式——跟着cc学设计系列 汇总贴
2012-08-23 10:09 22PPT和源码下载:http://sishuok.co ... -
简单工厂——研磨设计模式——跟着cc学设计系列
2012-08-22 19:45 1820本节课程概览 学习简单工厂 一:初识简单工厂 ... -
简单工厂——研磨设计模式——跟着cc学设计系列
2012-08-22 16:54 28本节课程概览 学习简单工厂 一:初识简单工厂 ... -
简单工厂——研磨设计模式——跟着cc学设计系列
2012-08-22 16:52 1本节课程概览 学 ... -
设计模式基础——研磨设计模式——跟着cc学设计系列
2012-08-22 12:33 51提前声明 本视频课程是北京Java私塾原创精品 ...
相关推荐
《研磨设计模式源码》是一份非常宝贵的资源,它提供了设计模式的实践代码,帮助开发者深入理解并应用这些模式。设计模式是软件工程中经过长期实践总结出来的一套通用解决方案,它们描述了在特定场景下如何解决常见...
《研磨设计模式》实战是IT领域中关于软件设计的一份重要资料,它主要探讨了设计模式在实际项目中的应用。设计模式是软件工程中经过长期实践总结出的通用问题解决方案,是解决常见设计问题的经验总结。这份PPT可能是...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
《研磨设计模式》这本书是陈臣和王斌两位作者合作的成果,专注于讲解软件设计中的模式应用。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决问题的常见方法,使得开发者可以复用这些解决方案,提高...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
“1.1 设计模式是什么 1.1.1 什么是模式 从字面上理解,模,就是模型、模板的意思;式,就是方式、方法的意思。综合起来,所谓模式就是:可以作为模型或模板的方式或方法。... “研磨设计模式”。 iBooks.
内容概述:本视频课程是北京Java私塾原创精品书籍《研磨设计模式》一书的配套学习视频,由《研磨设计模式》的第一作者CC录制 课程目标:全面、系统的掌握GoF设计模式的知识,达到可以在实际项目开发中运用的能力 ...
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
这篇“设计模式学习心得(研磨设计模式)”博客及其相关的PDF文档,为我们提供了一个深入理解和应用设计模式的宝贵资源。以下将针对单例模式、工厂方法模式、策略模式、命令模式和桥接模式进行详细讲解。 1. **单例...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
《研磨设计模式》是由陈臣和王斌合著,由清华大学出版社出版的一本深入探讨设计模式的专业书籍。设计模式是软件工程中的一个重要概念,它代表了在特定上下文中解决问题的常见方法,经过时间和实践的验证,具有很高的...
这个压缩包“研磨设计模式全部源代码”包含了多种设计模式的实现,这些模式可以帮助开发者写出更可维护、可扩展和可复用的代码。下面将详细讲解其中可能包含的一些重要设计模式及其应用。 1. 工厂模式:这是最简单...
此外,博文集可能还会涵盖设计原则,比如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)和接口隔离原则(ISP),这些都是设计模式的基础,理解和遵循这些原则能帮助我们更好地...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
《研磨设计模式》这本书是软件开发领域中的经典之作,主要关注的是面向对象设计中的设计模式。设计模式是在特定上下文中解决常见问题的最佳实践,它为开发者提供了在类似情况下重复使用解决方案的模板,有助于提高...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
研磨设计模式是一本深入探讨软件设计原则与实践的书籍,其讲课PPT为我们提供了丰富的设计模式知识。设计模式是软件工程中经过实践验证的、解决常见问题的模板,是经验丰富的开发人员智慧的结晶。这些模式可以帮助...
研磨设计模式《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地...