Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 820|回复: 0

[默认分类] 设计模式的简单理解(纯属本人个人见解,还请大神多多...

[复制链接]

该用户从未签到

发表于 2014-12-4 17:06:29 | 显示全部楼层 |阅读模式
    ------------------------------------------------------------------------------------------------创建型---------------------------------------------------------------------
    单例模式(Singleton)
                                                                                   说明
    一句话总结   
    一个类在java虚拟机中只有一个对象,并提供一个全局访问点
    生活中的例子    太阳,地球,国家主席
    解决了什么问题    对象的唯一性,性能浪费太多
    项目里怎么用    数据库连接对象,属性配置文件读取对象
    模式结构    分为懒汉式和饿汉式
    构造器私有化
    对外提供方法加同步关键字
    懒汉式的使用范围:对象比较大,不经常使用
    饿汉式的使用范围:对象不是太大也太小,使用的比较多
    框架里怎么用    Struts1的Action
    JDK里面使用    java.lang.Runtime#getRuntime()
    java.awt.Desktop#getDesktop()
    简单的工厂模式(Factory)    说明
    一句话总结    用一个方法代替new关键字
    生活中的例子    衣服长,面包厂
    解决了什么问题    对象产生过多,或者经常有子类替换生成
    项目里是怎么用的    对于经常生成的对象,或者父子类替换的对象
    模式结构    写一个对外申明的方发,方法里面用new关键字代替
    框架里面的使用    Spring的核心就是工厂模式
    JDK里面使用    newInstance()
    -----------------------------------------------------------------------------------------------结构型---------------------------------------------------------------------
    Proxy(代理模式)                                                                            说明
    一句话总结    为其他对象提供一个代理,以控制对当前对象的访问
    生活中的例子    房屋中介,婚姻介绍所
    解决了什么问题    对象不能直接访问,或者太大资源浪费
    项目里怎么用    权限,大对象的访问控制
    结构模式    代理对象和被代理对象都实现同一个接口
    用户访问的时候先访问代理对象,代理对象去访问被代理对象
    框架里面使用    Hibernate默认从缓存里面拿对象,懒加载的对象都是代理对象
    JDK里面使用    java.lang.reflect.Proxy
    Adapter(适配器模式)                                                           说明
    一句话总结    把原来两个不兼容的类让他们兼容在一起工作
    生活中的例子    变压器,充电器
    项目里面怎么用    在使用一些旧的api的时候,没有源码,和新的不兼容
    模式结构    类适配器
    对象适配器
    框架里怎么用的    单元测试里面的asserEquels
    JDK里面使用    java.util.Arrays#asList()
    Facade(外观模式)    说明
    一句话总结    为系统中的一组接口提供一个统一的高层接口
    生活中的例子    服务员,接待人员
    解决了什么问题    对象之间的交互太多,底层接口太多
    项目里面怎么用    把jdbc的很多细节封装在高层类里面
    模式结构    定义一个高层接口,把很多子接口封装在这个高层接口里
    客户端跟高层接口打交道就可以了
    框架里使用    IBatis里面直接传入Sql就可以了,我们可以同步调用Collection,PrepareStatement

    JDK里面使用    HttpSession , HittServletRrquest, HttpServletResponse
    Decorator(装饰器模式)    说明
    一句话总结    动态的给一个对象增加一些额外的功能
    生活中的例子    U盘  Mp3
    解决的问题    额外的增加功能过多
    处理可撤销的职责
    不能产生子类方式来增加功能
    项目中是怎么用的    报表
    模式结构    先定义一个顶级接口

    再定义一个装饰器类,里面包含了被装饰对象的引用
    在构造器里面传入被装饰对象,并且也要执行被装饰对象的方法
    框架里面的使用    sitemesh 动态的的换皮肤框架
    JDK里面的使用    java.io.InputStream,OutputStream,Reader and Writer的子类
    ------------------------------------------------------------------------------行为型-------------------------------------------------------------------------------------------
    Strategy(策略模式)    说明
    一句话总结    定义一些列的算法,可以互相替换
    生活中的例子    买菜可以跑步去,可以走着去,可以骑车去
    项目里面是怎么用的   
    解决了什么问题    做一件事可以有多种实现方法
    模式结构    定义一个顶级接口,定义一个策略方法,让实例类类去实现这些这个接口
    框架里面怎么用的    Hibernate主键生成策略
    JDK 里面的使用    java.util.Comparator#compare()
    doPost doGet
    Template(模板模式)    说明
    一句话总结    父类定义一系列的流程,子类去实现
    生活中的例子    一件产品从配件到成品
    解决了什么问题    业务有多种,但执行的流程就一套
    模式结构    定义了个抽象类定义流程,子类继承后实现具体的细节方法
    项目中是怎么用的    一般基类的实现都是模板模式
    框架里的使用    Hibernate的方言,方言是跨数据库的基础
    JDK里面的使用    Io流里面的InputStream Writer等等
    java.util.AbstractList.java.util.AbstractSet and java.util.AbstractMap
    Chain(责任链模式)    说明
    一句话总结    一个请求用以链的方式把对象串联起来处理
    生活中的例子    流水线,击鼓传花
    解决什么问题    一个请求处理过程比较多,不确定那个对象最后处理这个请求
    项目里怎么用   
    模式结构    定义一个抽象的Chain,里面有下一个的属性next,并且还有个设置函数
    框架里面的使用    Struts2的拦截器
    JDk里面使用    Filter 里面的doChain
    Observer(观察者模式)    说明
    一句话总结    对象之间一对多依赖关系,一变化了会通知多
    生活中的例子    天气预报,红绿灯
    解决了什么问题    多个对象依赖一个对象的情况
    项目里面怎么用    结合具体项目,譬如物价变了要通知所有的客户端
    模式结构    定义多方的观察者的接口,并定义方式
    定义一方的Subject类
    Subject类里面包含一个含有观察者的List
    在Subject写一个通知方法,循环遍历所有list里面对象,并发送通知
    框架里面的使用    Spring里面的事件,Tomcat里面的启动类,还有Hibernate里面的save,delete,update
    JDK里面的使用    JDK本身就带了一个Observer接口,所有的事件监听都是观察者模式的实现
    Command(命令模式)    说明
    一句话总结    每个行为封装成一个对象,并且对外提供统一的方法调用
    生活中的例子    遥控器
    解决了什么问题    行为过多,或者行为比较复杂
    项目里面怎么用的   
    模式结构    先定义一个Command顶级接口,并且声明方法
    对应每个行为,用一个Command 的子类把它封装起来
    在子类的统一方法实现功能
    框架里面使用    Struts1,Struts2的核心就是命令模式,其实就是Action
    JDK里面的使用    Runnable接口








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-4-29 22:05 , Processed in 0.404154 second(s), 52 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表