1.单例模式 就是一个类只产生一个对象 对应数据库连接 定时执行者服务(ScheduledExecutorService) 在整个项目中应该只有一个对象
2.工厂模式 定义一个用于创建对象的接口 让子类决定具体的实现 比如飞机大战创建不同的飞机 不同
的英雄
3.外观模式 定义子系统的接口组合 实现统一的界面 比如(Statement和PerpareStatement数据
库连接操作的封装类)
4.装饰者模式 动态的给对象添加额外的职能 作为人在不同的场景扮演不同的角色 典型的是io流
5.组合模式 给对象构造树状结构 以表示部分和整体的层次结构 比较常见的有 文件目录 多级菜单
6.模板模式 就是给一个操作添加算法框架 一些操作延迟到子类实现 比较常见的是读取配置文件
7.原型模式 就是在原型对象创建新的对象 浅克隆会拷贝基本数据类型和String类型 其他引用类型不会
拷贝(一般)
8.建造者模式 就是给一个复杂对象的构建和表示分离 使的同样的构建方式可以有不同的表示方式
protobuf的类的构建
9.策略模式 就是定义一系列的算法 封装起来 让他们可以相互替换 使的可以根据需求而变化、
10.适配器模式 就是将一个接口转换成客户端需要的接口 使的原本接口不兼容不能一起工作的可以一
起工作 100V的电压转为36V
11.桥接模式 就是将抽象部分和实现部分分离使的可以 抽象和实现独立的变化 不同的飞机发射不同的
子弹 不同的英雄释放不同的技能
12.享元模式 就是运用共享技术管理对象 比较常见的有缓存和数据库连接 这些不经常变化的数据可
以存入缓存中 提高查询速度
13.责任链模式 就是将多个对象处理请求 将它们连成一条链 每个对象都沿着这条链处理请求 web 的
过滤器就是这个原理 代码实现就是对象实现统一的接口 用集合存储对象 遍历调用接口方法
14.命令模式 就是将一个请求封装成一个对象 使的可以实现不同的请求对客户进行参数化
比如鼠标点击监听器 代码实现 暴露一个接口成员变量
15.访问一个聚合对象的内容而无需暴露它的内部表示 支持对聚合对象的遍历
比如集合的遍历 代码实现 在一个类中定义集合聚合对象成员变量 在这个类中处理聚合对象内容提
供方法给外部
16.中介者模式 用一个中介对象封装多个对象的交互 使的对象之间不用显示的引用 耦合松散 独立的
改变对象之间的交互 代码实现 就是定义一个中介类 定义多个对象的成员变量 中介类重写接口方
法 实现不同的交互
17.备忘录模式 在不破坏封装性的前提下 访问一个对象的内部状态 并在对象之外保存这个内部对象
使的对象可以恢复到保存的状态 记事本 undo redo 历史记录恢复 代码实现 用一个类 定义一个集
合成员变量 和索引 根据索引获取指定时间的备份
18.观察者模式 定义多个对象之间的一对多的依赖关系 当一个对象发生改变 依赖于他的对象得到通知
并发生改变 比如给日志打印 spirng的事件监听 代码实现 就是让用个集合存储监听接口
19.代理模式 为其他对象提供代理 以控制这对象的访问 比如dao层数据库访问层 数据源类型用模板模
式实现 代码实现 代理类实现被代理方法 并且定义被代理类的成员变量
 

java之设计模式汇总的更多相关文章

  1. Java设计模式汇总

    Java设计模式汇总 设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式. ...

  2. 史上最全的 Java 新手问题汇总

    史上最全的 Java 新手问题汇总   Java是目前最流行的编程语言之一——它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在. 有超过30亿 ...

  3. 转 分享我在阿里工作十年接触过Java框架设计模式

    转 原文: 分享我在阿里工作十年接触过Java框架设计模式 一.前言 说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者 ...

  4. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  5. Java面试题汇总---升级版(附答案)

    前几天写了Java面试题汇总---基础版,总结了面试中常见的问题及答案,那我今天基于昨天的话题做一次升级,也就是说,求职者除了要学习了解哪些常见的基础面试题之外,还得准备些什么呢? 对有工作经验的求职 ...

  6. Java面试知识点汇总

    Java面试知识点汇总 置顶 2019年05月07日 15:36:18 温柔的谢世杰 阅读数 21623 文章标签: 面经java 更多 分类专栏: java 面试 Java面试知识汇总   版权声明 ...

  7. Java常用英语汇总(面试必备)

    Java常用英语汇总(面试必备) abstract (关键字)             抽象 ['.bstr.kt] access                            vt.访问,存 ...

  8. 基于java的设计模式入门(1)——为什么要学习设计模式

    大年初一,楼主在这里给大家拜年,祝大家码上升职加薪,码上有对象结婚,码上有车有房,幸福安康. 过完年,回学校注册报道之后,大概就要回深圳到公司开始实习了.提高自己,无非就有两种方式,一是看书学习,二是 ...

  9. java 日志技术汇总(log4j , Commons-logging,.....)

    前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...

随机推荐

  1. Maven :Failed to execute goal on projectt ...: Could not resolve dependencies for project ...

    Maven 项目运行 clean install  之前,先要运行父项目的 clean install, 否则可能出现 Failed to execute goal on project ...: C ...

  2. react-redux 的总结

    第一步,我们将我们要使用的插件来先一步进行安装 create-react-app app  // 在这里我们使用了 react 的脚手架来搭建的项目 cd app // 进入我们的项目 npm i - ...

  3. GIS面积计算问题

    好长时间不更新了,今天说点干货,项目用到的. 1.项目中要用到计算面积的,根据火星坐标: 2.百度找了各种面积计算,google了半天,也没发现那个比较准确: 直接说干货吧.咱也高大上一会,用 Arc ...

  4. Cortex-M3 操作模式与特权等级

    Cortex-M3支持2个模式(Handler模式.线程模式)和2个特权等级(特权级.非特权级). 当处理器处在线程模式时,既可以使用特权级,也可以使用非特权级. 当处理器处在Handler模式时,总 ...

  5. AndroidManifest.xml中的<uses-feature>以及和<uses-permission>之间的联系

    概述:<uses-feature>用来声明应用中需要用的硬件和软件的功能. 硬件特性:表明您的应用需要用的硬件功能. 功能类型 特征描述 描述 音频 android.hardware.au ...

  6. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_1 搭建环境

    创建项目 使用骨架,创建webapp 为了创建项目更快速maven设置 archetypeCatalog internal 修改编译的版本 从昨天的课程内复制 相关的坐标.上面是版本锁定. 复制前端的 ...

  7. 六十七:flask上下文之Local线程隔离对象

    Local对象在flask中,类似于request对象,其实是绑定到了werkzeug.local.Local对象上,这样即使是同一个对象,在多线程中都是隔离的,类似的对象还有session以及g对象 ...

  8. Angularjs E2E test Report/CoverageReport

    前端Angularjs是一个很热门的框架,这篇是学习基于Angularjs的nodejs平台的E2E测试报告和E2E JS覆盖率报告.用到的都是现有的工具,只是一些配置的地方需要注意. 环境前提: 1 ...

  9. Django-ORM之聚合和分组查询、F和Q查询、事务

    聚合查询 聚合对查询的结果进行一步的计算加工. aggregate()是QuerySet 的一个终止子句 ,他的作用是,返回一个包含一些键值对的字典.键的名称是聚合值的标识符,值是计算出来的聚合值.键 ...

  10. 在vue中后台返回的文本包含标签时候解析为html代码

    1.数据格式: str=‘<p>11111</p>' 解析方式一: <p v-html="str">{{str}}</p> 解析方式 ...