【精华版】JAVA设计模式.docx_第1页
【精华版】JAVA设计模式.docx_第2页
【精华版】JAVA设计模式.docx_第3页
【精华版】JAVA设计模式.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工厂模式:一句话总结:使用工厂来创建实例,直接代替了new操作。生活中的例子:生产手机的工厂,可以生成不同的手机,只要客户购买就可以了,不要关心是怎么生产的。解决什么问题:解决一个一个类的生成方式过多,容易发生变动。 New操作耦合度较高。项目里面怎么用:在项目里面要初始化一些信息,不需要用new操作,用工厂方法来代替。模式结构:定义一个具体的工厂类,来创建一些类的实例,而这些类都必须有个共同的父类,在客户端无需关心如何创建实例,直接调用工厂类即可. 框架或者JDK用法:spring里的IOC的beanFactory容器是一个工厂。单例模式: 一句话总 结:确保一个类只有唯一的一个实例。生活中的例子:地球上面只有一个太阳,月亮,中国解决什么问题:保证数据的唯一性。 项目里面怎么用:在没有学习框架的时候,通过jdbc连接数据库的时候,就用到了单例模式。模式结构: 私有化构造器,声明一个私有的,静态的类对象,对外提供一个公有的,静态的,同步的(synchronized当多个线程访问我的方法的时候,只有一根线程能访问我的方法,防止一次产生多个实例),唯一的方法。判断对象是否为null,如果为null,表示这个类还没有被实例化,就会初始化这个对象,再返回,如果不是null的话,就直接返回。框架或者JDK用法:Spring中Bean创建实例就是通过单例模式,策略模式:一句话总结:定义一系列的算法,把这些算法一个个封装成拥有共同接口,并且使它们之间可以互换。生活中的例子: 去一个目的地,可以用走路,做公交,打的士解决什么问题:实现一种功能,可以有多种方式。 项目里面怎么用:比如我们在项目连接数据方式可以是jdbc、ibatis、hibernate.模式结构:定义一个超级接口,在接口里面定义一些抽象方法,然后由不同子类实现这个接口再实现不同的策略。框架中的用法:servlet的httpServlet,有doGet和doPost的方法 JDK中的用法 :util中的Comparator中的compare方法模版模式:一句话总结:父类定义流程,子类去实现。生活中的例子: 篮球教练定义战术,球员去实现。解决什么问题:主要解决了流程重复和结构相似的问题项目里面怎么用: 在Dao层里面定义流程让子类去实现增,删,查,改模式结构: 定义一个抽象类,在抽象类里面定义流程,再在普通类里面去调用抽象方法, 如果有重复的流程,就在抽象类里面定义普通类,也可以增加到流程里面去,父类里面的抽象框架中的用法:io中的InputStream。MVC模式中的Dao层,spring的JdbcDaoTemplate。JDK中的用法 : 观察者模式:一句话总结:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。生活中的例子:航班的时刻表。解决什么问题:解决了一对多的关系,解决对象之间依赖关系过多。项目里面怎么用:以前做的一个网上购物系统,当商品价格发生变化后,那么系统会通过邮件系统自动向每个会员用户发送邮件。这样就需要在商品product中加入observer角色,以便product发生变化时observer能够即时的观察到并且能够及时的进行update动作。模式结构:先定义一个观察者接口,定义一些普通的观察者类去实现接口,在定义一个被观察者的普通,里面定义一个List集合,在定义两个方法,一个是增加观察者,还有一个方法就是当被观察者改变的时候,就会通知并更新观察者。框架中的用法: mvc中的一个优点,模型使用观察者模式,以便观察更新情况,同时保持两者之间的解耦。JDK中的用法 :AWT中的事件监听器适配器模式:一句话总结:使原本由于接口不兼容而不能一起工作的那些类可以一起工作。生活中的例子: 手机充电,电风扇解决什么问题:实现了代码的兼容性。项目里面怎么用: 当我们在做移动项目的时候,增加卡片的时候,我们要选择卡商,所以我们是在卡片增加的方法里面还调了查询的方法.模式结构: 1.声明一个接口,在接口里面定义一个入参方法.2.定义一个普通类,里面定义一个和接口里面的方法参数不同.3.然后在接口的子类实现方法时,调用普通类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论