Java 设计模式

设计模式是对应于不同的应用目的的。
 
适配:将特定功能接口适配需求方
 
桥接:面向两个接口,无关接口的实现; 抽象化与实现化解耦,使得二者可以独立变化;例:笔与图形,笔可以画图形,笔可以有铅笔,圆珠笔等,图形可以有圆形,方形等;Eclipse 平台上的桥接模式
 
工厂:定义一个用于创建对象的接口,让子类决定实例化哪个类,是一个类的实例化延迟到其子类。
 
抽象工厂:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。为了让相互依赖的接口共同协作;类比桥接;汽车厂包含生产轿车品类,生产卡车品类,生产跑车品类不同生产线;开发不同平台的软件等
 
外观:为一组接口定义个一个更高层的统一接口,隐藏系统复杂性
 
状态:目的---消除庞大的条件分支语句;原理---将特定状态相关的行为都放入一个对象中,通过定义不同的子类可以自由的增加新的状态和转换;应用---对象的行为取决于状态,在运行时刻根据状态改变行为。
 
装饰:动态的添加功能
 
中介:用一个中介对象封装一系列的对象交互。避免显示的相互引用,耦合松散。
 
备忘录:不破坏封装的前提下在外部保存对象的状态
 
代理:为其它对象提供一个代理,以控制对着个对象的访问
 
原型:由一个对象创建另一个可定制对象,且不需要知道中间的任何细节。
 
建造者: 使用多个简单的对象一步一步构建成一个复杂的对象;各种builder,SessionFactoryBuilder http等
 
命令:将请求封装为对象。 将命令的执行和责任分开
 
职责链:struts action链, filter chain
 
解释器:jvm
 
访问者:商品购物车 
 
策略模式:将易于变化的部分封装为接口,通常Strategy 封装一些运算法则,使之能互换;如实现排序的多种策略方法。
 
组合模式(整体部分):以树的形式组合对象。xml解析。 组合模式使得用户对单个对象和组合对象的使用具有一致性。 客户程序与复杂元素的内部结构解耦
 
观察者: 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。订阅新闻。
 
享元: 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。 主要用于减少创建对象的数量,以减少内存占用和提高性能;共享池,数据库连接池;string
 

项目实例:https://github.com/windwant/windwant-demo/tree/master/java-design-pattern

一句话描述 Java 设计模式的更多相关文章

  1. 一句话说说java设计模式

    设计模式 看到标题,大家是不是觉得不可思议,java的23种设计模式那么‘复杂’,那么‘难懂’,用一句话怎么说的明白呢? 首先,各位看官不要误解,近来在回头看设计模式,之前都看过,但时间是把‘杀猪刀’ ...

  2. java设计模式 策略模式Strategy

    本章讲述java设计模式中,策略模式相关的知识点. 1.策略模式定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户.策略模式属于对象的 ...

  3. java设计模式系列之设计模式概要(1)

    一.什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. ...

  4. Java设计模式相关面试

    1.接口是什么?为什么要使用接口而不是直接使用具体类? 接口用于定义 API.它定义了类必须得遵循的规则.同时,它提供了一种抽象,因为客户端只使用接口,这样可以有多重实现,如 List 接口,你可以使 ...

  5. 折腾Java设计模式之命令模式

    博客原文地址 折腾Java设计模式之命令模式 命令模式 wiki上的描述 Encapsulate a request as an object, thereby allowing for the pa ...

  6. 花了30天才肝出来,史上最全面Java设计模式总结,看完再也不会忘

    本文所有内容均节选自<设计模式就该这样学> 序言 Design Patterns: Elements of Reusable Object-Oriented Software(以下简称&l ...

  7. Java设计模式之行为型模式

    行为型模式共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 策略模式:策略模式的决定权在用户,系统本身提供不同 ...

  8. Java设计模式(一) 简单工厂模式不简单

    摘要:本文介绍了简单工厂模式的概念,优缺点,实现方式,以及结合Annotation和反射的改良方案(让简单工厂模式不简单).同时介绍了简单工厂模式(未)遵循的OOP原则.最后给出了简单工厂模式在JDB ...

  9. Java设计模式(十三) 别人再问你设计模式,叫他看这篇文章

    原创文章,转载请务注明出处 OOP三大基本特性 封装 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏. 继承 继承是指这样一种能力,它可以使 ...

随机推荐

  1. MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite

    MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android.IPhone等智能手机的离线地图存储. ...

  2. centos7生成密钥及集群之间免密登录

    1.在本地生成密钥 命令:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 2.进入.ssh文件夹,创建保存密钥的文件 命令:touch authorized_keys ...

  3. PAT——年会抽奖(错位 排序)

    题目描述 今年公司年会的奖品特别给力,但获奖的规矩却很奇葩: 1. 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中:2. 待所有字条加入完毕,每人从箱中取一个字条:3. 如果抽到的字条上写的就是 ...

  4. Oracle在线重定义(online redefinition)--将普通表改为分区表

    使用Oracle的在线重定义技术,可以将Oracle的普通表改为分区表.操作如下: STEP1:测试表是否可以在线重定义,这里以unixdev数据库的LIJIAMAN.BSTEST为例 EXEC DB ...

  5. 在IDEA中关于项目java版本问题

    在IDEA中关于项目java版本问题 当出现错误如:java无效的源发行版11或IDEA Error:java:Compliation failed:internal java complier er ...

  6. Django学习笔记4-csrf防护

    1.CSRF验证失败. 请求被中断. 原因是django为了在用户提交表单时防止跨站攻击所做的保护 什么是 CSRF CSRF, Cross Site Request Forgery, 跨站点伪造请求 ...

  7. 新手Linux命令学习

    一.dd命令:1.可以复制文件,2.可以制作ios镜像,简单理解就是备份 常用的参数  if 设置输入文件的名称 of  设置输出文件的名称 bs  设置每个“”块“”大小 count  要复制“块” ...

  8. jQuery关于复选框的基本小功能

    这里是我初步学习jquery后中巨做的一个关于复选框的小功能: 点击右边选项如果勾上,对应的左边三个小项全部选中,反之全不选, 左边只要有一个没选中,右边大项就取消选中,反之左边全部选中的话,左边大项 ...

  9. 配置SpringBoot方便的切换jar和war

    配置SpringBoot方便的切换jar和war 网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式. jar到war修改步骤 pom文件修改 ...

  10. mint-ui message box 问题;

    当引用 mint-ui message box 的 出现的问题,我暂时是不知道为什么: 官网是这样写的: 于是 我也这么做的:(这里用小写,具体我也不清楚,毕竟文档上写的也不是很清楚,但是只有这样写, ...