java设计模式
文章平均质量分 92
奋斗的bigHead
做一个有思想的人,实事求是,笃学诚行
展开
-
Java设计模式之命令模式
定义将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。优点 1.降低对象之间的耦合度。 2.新的命令可以很容易地加入到系统中。 3.可以比较容易地设计一个组合命令。 4.调用同一方法实现不同的功能缺点 使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令转载 2017-04-28 10:43:14 · 434 阅读 · 0 评论 -
Java设计模式之装饰者模式
装饰模式在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点(1) 装饰对象和真实对象有相同的接口。这样客户端对原创 2017-04-25 12:04:27 · 271 阅读 · 0 评论 -
JAVA设计模式之代理模式
简介为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用, 其特征是代理类与委托类有同样的接口。 代理模式是常用的java设计模式。代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代原创 2017-04-25 15:36:02 · 315 阅读 · 0 评论 -
JAVA设计模式之门面模式
简介门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户转载 2017-04-25 16:23:00 · 644 阅读 · 0 评论 -
JAVA设计模式之适配器模式
概述将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。解决的问题即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。下面是两个非常形象的例子模式中的角色目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。需要适配的类(Adaptee):需要适配的类或适配者类。适原创 2017-04-25 10:36:05 · 321 阅读 · 0 评论 -
JAVA设计模式之桥接模式
将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化。这句话有三个关键词,也就是抽象化、实现化和脱耦。 抽象化 存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待。 实现化 抽象化给出的具体实现,就是实现化。 脱耦 所谓耦合,就是两个实体的行为的某种强关联。而将它们的原创 2017-04-25 18:06:38 · 576 阅读 · 0 评论 -
JAVA设计模式之组合模式
简介将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 使用情况 当发现需求中是体现部分与整体层次结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑组合模式了。那就拿我剪发办卡的事情来分析一下吧。首先,一张卡可以在总部,分店,加盟店使用,那么总部可以刷卡,分店也可以刷卡,加盟店也可以刷卡,这原创 2017-04-26 10:16:24 · 239 阅读 · 0 评论 -
JAVA设计模式之享元模式
简介它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。 也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象原创 2017-04-26 15:06:40 · 637 阅读 · 0 评论 -
Java设计模式之模板方法模式
简介模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 比如定义一个操作中的算法的骨架,将步骤延迟到子类中。模板方法使得子类能够不去改变一个算法的结构即可重定义算法的某些特定步骤。模式中的角色 抽象类(Abst原创 2017-04-26 17:48:34 · 591 阅读 · 0 评论 -
Java设计模式之观察者模式
简介观察者模式中,一个被观察者管理所有相依于它的观察者物件,并且在本身的状态改变时主动发出通知。这通常通过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。角色 抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个被观察者角色都可以有任意数量的观察者。被观察者提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。 抽象观察者角色:为所有具体的观察者定原创 2017-04-27 09:47:48 · 485 阅读 · 0 评论 -
Java设计模式之责任链模式
原文 http://www.cnblogs.com/jyyzzjl/p/5187340.html模式解析责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。责任链模式的原创 2017-04-27 17:43:34 · 624 阅读 · 0 评论 -
java设计模式之原型模式
原型模式原创 2017-04-25 09:34:53 · 219 阅读 · 0 评论 -
java设计模式之建造者模式
转自http://blog.csdn.net/jason0539定义建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。实用范围 1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2、当构造过程必须允许被构造的对象有不同表示时。角色 在这样的设计模式中,有以下几个角色: 1、Builder:为创建一个产品对象的各个部件指定抽象接口。原创 2017-04-24 18:34:12 · 211 阅读 · 0 评论 -
Java设计模式之备忘录模式
简介备忘录模式:又叫做快照模式,指在不破坏封装性的前提下,获取到一个对象的内部状态,并在对象之外记录或保存这个状态。在有需要的时候可将该对象恢复到原先保存的状态。我们相当于把对象原始状备份保留,所以叫备忘录模式。 角色对象组成1.发起者对象:负责创建一个备忘录来记录当前对象的内部状态,并可使用备忘录恢复内部状态。 2.备忘录对象:负责存储发起者对象的内部状态,并防止其他对象访问备忘录。 3.转载 2017-04-28 11:54:20 · 457 阅读 · 0 评论 -
Java设计模式之状态模式
原文 http://design-patterns.readthedocs.io/zh_CN/latest/behavioral_patterns/state.html简介模式定义允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States)。模式结构角色:Context: 环境类 State: 抽象状态类 ConcreteSt原创 2017-04-28 17:36:46 · 702 阅读 · 0 评论 -
Java设计模式之访问者模式
定义封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类图 访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下:class A { public void method1(){ System.out.println("我是A"); }原创 2017-05-11 15:45:03 · 193 阅读 · 0 评论 -
Java设计模式之中介者模式
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类图:结构中介者模式又称为调停者模式,从类图中看,共分为3部分:抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。中介者实现类:从抽象中介者继承而来,实现抽象中介者中定义的事件方法。从一个同事类转载 2017-05-11 17:24:10 · 207 阅读 · 0 评论 -
Java设计模式之解释器模式
定义给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。 类型:行为类模式类图 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。解释器模式的结构抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interpret()方法,称为解释操作。具体解释任务由它的各个实现类来完成,具体原创 2017-05-11 18:14:27 · 229 阅读 · 0 评论 -
Java设计模式之迭代器模式
原文:http://blog.csdn.net/zhangerqing/article/details/8243942 顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。我们看下关系图:这个思路和我们常用的一模一样,MyCollect转载 2017-04-27 16:12:30 · 470 阅读 · 0 评论 -
Java中的23种设计模式与六大原则
一、创建型模式1、抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类.2、生成器模式(Builder pattern): 使用生成器模式封装一个产品的构造过程, 并允许按步骤构造. 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示.3、工厂模式(factory method pattern)原创 2017-04-24 16:01:33 · 439 阅读 · 1 评论 -
Java设计模式之策略模式
本文继续介绍23种设计模式系列之策略模式。原文连接背景在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个原创 2017-04-19 18:02:14 · 481 阅读 · 0 评论 -
JAVA设计模式之单例模式
作者:jason0539 博客:http://blog.csdn.net/jason0539(转载请说明出处)Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个原创 2017-04-24 16:20:07 · 284 阅读 · 0 评论 -
JAVA设计模式之工厂模式
工厂模式原创 2017-04-24 17:05:02 · 273 阅读 · 0 评论