资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,设计模式例程描述与分析,内 容,一、背景,二、什么是设计模式,三、为什么使用设计模式,四、如何学习和分析设计模式,五、如何描述设计模式,六、基础,七、设计模式分析举例,八、Jive Forum及其中的设计模式,九、问题和讨论,一、背 景,目前企业级分布式软件开发普遍采用面向对象的方法,OOD直接导致了设计模式的发展。,开发面向对象的软件是困难的,而开发可复用的面向对象的软件更难1。,有经验的设计者使用重用过去的方案。,采用设计模式使设计和代码具有良好的可维护性、可复用性和可升级性。,背 景,“Design patterns help you learn from others successes instead of your own failures.”by Mark Johnson。,二、什么是设计模式,1970s,,Christopher Alexander,的建筑师,提出设计模式概念。,直到,1987,,一些设计模式的论文和文章出现了,。,1995,年,,GOF,发表了书:,设计模式可复用面向对象软件的基础(,Design Patterns:Elements of Reusable Object-Oriented Software,),Gof(Gang of Four)的设计模式,定义:模式是在一个,上下文,中,对一个,问题,的,解决方案,。即模式的四要素:,名字、上下文、问题和解决方案,。,分类:23种设计模式:,创建型:5种,结构型:7种,行为型:11种,三、为什么使用设计模式,尽力用一种标准的方式描述设计经验,为设计者提供一种通用的语言,增加复用性,减少设计的多样性,增强设计变更的灵活性,提高设计文档的质量,增强设计的可理解性,四、如何学习使用设计模式,使用工具:面向对象语言开发运行环境(C+/java)、UML建模工具(Rose),理解各种设计模式(Gof的23种设计模式)描述的基本概念,分析典型的应用(JDK核心类库、扩展类库、j2ee平台、jive forum、petstore、tomcat、等),不断实践,五、如何描述模式,目的:简要描述模式的目的。,使用场合:典型的应用场合,结构:采用UML语言中的类图(或对象图)进行描述。,模式检验:可执行的Java程序代码。,分析:进一步的分析,以及与其他模式的比较,例程。,六、基本基础,面向对象基本概念:,从这里入手:,Circle acircle;,acircle=new Circle(10,10,100);,类:Circle,对象引用:acircle,实例化:new Circle(10,10,100),实例(对象),基本基础关系,A4,B4,A41,B42,A1,B1,A2,B2,Dependency,A3,B3,Aggregation,B,A,Association,Generalizaiton,七、例程1 适配器(Adaptor)模式,目的:,把一个类用用户希望的形式描述;即用用户希望的接口适配这个类。,在这个模式中,这个类叫做被适配者(Adaptee),用户定义的接口叫适配接口,用户实现适配接口的类叫适配器(Adaptor)。,也叫做,包装器(Wrapper)。,例子:动物图形编辑器,我们的程序,现成的程序,重用,策略1对象适配器,适配器,采用对象复合,策略1对象适配器,/这是个适配器程序,适配Tiger使其具有Tookit的接口,public class TigerAdaptor implements Tookit,public Tiger theTiger;,public TigerAdaptor(Tiger t),theTiger=t;,public void draw(),theTiger.paint();,策略2类适配器,适配器,采用类继承,策略2采用继承,public class TigerAdaptor1 extends Tiger implements Tookit,public TigerAdaptor1(),public void draw(),super.paint();,Adapter的一般结构,另一个Adapter实例,例程2 观察者(Observer)模式,目的:,在多个对象之间建立一对多的关系,当一个对象改变时,其它所有的依赖对象自动发生改变。,这个对象叫作被观察者(Subject),其它依赖的对象叫做观察者(Observer)。,也叫作:,Dependents,Publish-Subscribe,Model-View,使用场合,内容和显示分离,视图同步。如:,MVC结构,MVC结构,使用java.util.Observer和java.util.Observable,使用java.util.Observer,import java.util.*;,public class ConcreteSubject extends Observable,private String name;,private float price;,public ConcreteSubject(String name,float price),this.name=name;,this.price=price;,System.out.println(ConcreteSubject ConcreteSubject created:+name+at +price);,public String getName(),return name;,public float getPrice(),return price;,public void setName(String name),this.name=name;,setChanged();,notifyObservers(name);,public void setPrice(float price),this.price=price;,setChanged();,notifyObservers(new Float(price);,ConcreteSubjectg.java,PriceObserver.java,import java.util.*;,public class PriceObserver implements Observer,private float price;,public PriceObserver(),price=0;,System.out.println(Price Observercreated:Price currently +price);,public void update(Observable obj,Object arg),if(arg instanceof Float),price=(Float)arg).floatValue();,System.out.println(PriceObserver:+price);,创建型设计模式,Singleton,产生一个类的唯一实例。,Simple Factory,用Factory的同一种方法产生不同子类的对象,Factory Method,用Factory不同的子类的不同方法,创建同类的不同子类的对象,又称为,Polymorphic Factory,。,Abstract Factory用Factory不同的子类的不同方法,创建不同类的不同子类的对象。,简单Factory,Factory Method,Abstract Factory,八、Jive Forum中的设计模式,安装运行环境,Java,运行环境:,jdk1.3.1,应用服务器:,tomcat4.0.4,Web,应用:,Jive Forums Basic Version:2.5.4,数据库:,cloudscape3.6.4,参考文献,设计模式可复用面向对象软件的基础,GOF,Jive中的设计模式,谢!问题和讨论,有时候,人太清醒反而觉得累,觉得不快乐,但是想要学会装糊涂还真是难。不要等到人生垂暮,才想起俯拾朝花,且行且珍惜。你可能在一个人面前一文不值,却在另一个人面前是无价之宝。谨记自己的价值所在。路再远,也有尽头,;,苦再深,也会结束,只要不放弃,就有希望。只是,在漫漫的长途中跋涉,在深深的痛苦中挣扎,我们常常为环境所迫,被困难所迷惑,放弃了希望,厌倦了生活,觉得路越走越窄,苦越来越深。其实,窄的不是路,是思想与感情,深的不是苦,是感受与心情,路边是路,苦中有甜,看得是你自己。许多人,不是擦肩,就是错过,总是无缘,;,许多事,不是无能,就是无情,总是无缘。人生,就是一次艰辛的旅行,得意时,顿生许多豪情,期盼着,浏览更多美好的风景,;,失意时,凭添许多伤心,渴望着,走出困境摆脱愁情。人生所有的一切,得意也好,失意也罢,圆满很少,完美不多,人如此,事这样,如意很少。人生,有许多无奈,好多人或事,明明喜欢,偏偏不能,;,明明热爱,恰恰不能,;,生活,有许多无能,好多事情,明明讨厌,常常不做不行,;,明明厌倦,往往不做不成。想做的不能,想说的不行,;,不愿做的,却又不能,不想说的,就是不行。我们就是这样无奈,无能。何时,能随心如愿,给心身最大的自由,那该多好。这个世界有两件事我们不能不做:一是赶路,二是停下来看看自己是否拥有一份好心态。好心态是人们一生中的好伴侣,让人愉悦和健康。人生感悟:要有阳光般的心态。没有爱的生活就像一片荒漠,赠人玫瑰,手有余香“学会爱别人,其实就是爱自己”,让爱如同午后阳光,温暖每个人的心房。人生感悟:学会爱别人多去尊重理解别人,常怀宽容和感激之心,宽容是一种美德,是一种智慧,海纳百川才有了海的广阔,感激你的朋友,是他们给了你帮助:感激你的敌人,是让你变得坚强。人生感悟:懂得宽容和感恩。管好自己的嘴,讲话不要只顾一时痛快信口开河,“良言一句三冬暖,伤人一语六月寒”说话要用脑子。不扬人恶,自然能化敌为友。人生感悟:切记祸从口出!人情、人情,人之常情,要乐善好施,常与交往,“平时多烧香,急时有人帮”,所以,“人情要多储存,就像银行存款,存的越多,时间越长,红利就越大。人生感悟:多储存人情。遇事不要急躁!不要急于下结论特别是生气的时候做决断,要学会换位思考,或者等一等,大事化小,小事化了。把复杂的事情尽量简单处理,千万不要把简单的事情复杂化。人生感悟:遇事莫急躁!真正学会知足。人生最大的烦恼是从没有意义的比较开始,大千世界总有比如你的和比你强的人,“当我哭泣没鞋穿的时候,我发现有人却没脚”。人生感悟:真正学会知足。如果敌人让你生气,那说明你还有胜他的把握,根本不必回头去看咒骂你的人是谁。如果有一条疯狗咬你一口,难道你也要趴下去反咬它一口吗?人生感悟:不和小人生气计较。别把工作当负担,既然目前改不了行,也没有更好的选择,与其生气埋怨,不如积极快乐的去面对。当你把工作当做生活和艺术时,你就会享受到生活的乐趣。人生感悟:享受工作的快乐。人活着一天就是福气,就该珍惜,人生短短几十年,不要给自己留下更多的遗憾。日出东海落西山,愁也一天,喜也一天;遇事不钻牛角尖,人也舒坦,心也舒坦。人生感悟:珍惜自己的生活。,1.,人生就像蒲公英,看似自由,却往往身不由己。生活没有如果,只有结果,自己尽力了,努力了,就好。有的人像,WIFI,热点,即使远了,但是只要你没改密码,再相见的时候也会自动连上,只是改不改密码,也是人家的事了。要么敢爱敢恨快意人生,要么没心每肺扮傻到底,别让自己活成了那种,懂得很多道理却过不好这一生的人。成大事的人,往往做小事也认真,而做小事不认真的人,往往也做不成大事。看别人不顺眼,其实是自已的修养不够。人生在世,顺少逆多,一辈子不容易,千万不要总是跟别人过不去,更不要跟自已过不去。如果是一堆苹果,有好有坏,你就应该先吃好的,把坏的扔掉,如果你先吃坏的,好的也会变坏,你将永远吃不到好的,人生亦如此。人,总爱跟别人比较,看看有谁比自己好,又有谁比不上自己。而其实,为你的烦恼和忧伤垫底的,从来不是别人的不幸和痛苦,而是你自己的态度。学习中经常取得成功可能会导致更大的学习兴趣,并改善学生作为学习的自我概念。为了成功地生活,少年人必须学习自立,铲除埋伏各处的障碍,在家庭要教养他,使他具有为人所认可的独立人格。劳动教养了身体,学习教养了心灵我们的事业就是学习再学习,努力积累更多的知识,因为有了知识,社会就会有长足的进步,人类的励志语录未来幸福就在于此。青年是整个社会力量中的一部分最积极最有生气的力量。他们最肯学习,最少保守思想,在社会主义时代尤其是这样。必须记住我们学习的时间有限的。时间有限,不只由于人生短促,更由于人事纷繁。在学习上做一眼勤手勤脑勤,就可以成为有学问的人。聪明在于学习,天才在于积累。所谓天才,实际上是依靠学习。天才不能使人不必工作,不能代替劳动。要发展天才,必须长时间地学习和高度紧张地工作。人越有天才,他面临的任务也就越复杂,越重要。诺夫对所学知识内容的兴趣可能成为学习动机。,12,、要建设,就必须有知识,必须掌握科学。而要有知识,就必须学习,顽强地耐心地学习。向所有的人学习,不论向敌人或朋友都要学习,特别是向敌人学习。学习专看文学书,也是不好的。先前的文学青年,往往厌恶数学理化史地生物学,以为这些都无足轻重,后来变成连常识也没有。只有让学生不把全部时间都用在学习上,而留下许多自由支配的时间,他才能顺利地学习,这是教育过程的逻辑。游手好闲地学习,并不比学习游手好闲好。学习的敌人是自己的满足,要认真学习一点东西,必须从不自满开始。对自己,“学而不厌”,对人家,“诲人不倦”,我们应取这种态度。钢是在烈火和急剧冷却里锻炼出来的,所以才能坚硬和什么也不怕。我们的一代也是这样的在斗争中和可怕的考验中锻炼出来的,学习了不在生活面前屈服。读和写是学生最必要的两种学习方法,也是通向周围世界的两扇窗口。,
展开阅读全文