Java 设计模式
石硕页
不滞于物,草木竹石均可为剑
展开
-
java设计模式(7):原型模式
1. 什么是原型模式原型模式是一个创建型的模式,它实现了一个原型接口,这个接口用于创建当前对象的克隆。当直接创建对象的代价很大时,很适合采用这种方式。 在执行Object类的clone()方法时,此类必须要实现Cloneable接口,这个接口没有任何方法。public interface Cloneable {} 它只是告诉jvm,这...原创 2018-06-12 21:42:31 · 153 阅读 · 0 评论 -
java设计模式(17):建造者模式
参考:java建造者模式--给一个你一看就懂的建造者模式【java设计模式】建造者模式---StringBuilder讲解原创 2019-04-04 17:05:55 · 187 阅读 · 0 评论 -
java设计模式(16):备忘录模式
1.什么是备忘录模式官方的说法:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以想要在恢复之前的状态的时候进行恢复。我们会发现,上面的定义就像是快照一样,比如IE浏览器的返回按钮,Ctrl+Z 都是这样的一个操作。此外,这个设计模式和原型模式比较类似。原型模式,是创建一个对象的克隆,肯定是对象的全部状态的一个备份;备忘录模式,可以是我们想要备份的部分...原创 2019-03-25 21:25:07 · 173 阅读 · 0 评论 -
java设计模式(15):桥接模式
桥接模式在网上看了很多关于桥接模式的定义,刚开始看的时候,无一不让你感到云里雾里,都是一些过于抽象的解释。比较通用的定义如下:桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。初看的时候,你会怎么理解 “抽象化” 和 “实现化”。“抽象” 对应的java 里面的的抽象...原创 2019-03-17 11:40:03 · 231 阅读 · 0 评论 -
java设计模式(14):责任链模式
概述责任链模式,就是一个请求来的时候,如果接受之后,需要进行多个操作,那么这里的多个操作,可以分解为多个责任人分别处理,然后这里的多个责任者就可以连接成一个责任链。责任链模式最为常见的应用就是Java中的FilterChain,后台接受到前端的请求后,会被filter 拦截,执行doFilter操作,操作完之后,会被下一个filter拦截,继续这样的操作。如果没有用责任链这样进行分隔,...原创 2019-03-03 16:42:34 · 166 阅读 · 0 评论 -
java设计模式(13):状态模式
概述刚看到状态模式的时候,第一眼的感觉就是觉得和策略模式很相似。都是在有很多情况下的时候,通过接口,类的设计,取代if...else和switch...case 语句。但从字面上就可以看出状态是事物的内部一个状态,策略是外部已知的策略。举个例子,比如一个合同,可能有三种状态:未开始,审核中,已完成。这三种状态,是合同这个对象内部的状态,如果后续增加了状态,也是合同内部新增即可。外部人员在调...原创 2019-03-03 15:49:38 · 214 阅读 · 0 评论 -
java设计模式(12):外观模式
Facade 模式: 外观模式,又称门面模式。主要思想是将复杂的内部实现给用户脱离,设计一个简单接口给用户。让用户不用关心你的内部实现(或者说是只向用户暴露用户想要的数据)。举个例子,你访问网页,在你想看体育,娱乐,新闻,等各种网页时,你需要去找这个找哪个页面。如果这个时候有一个导航页,你点击后就可以直接链接到各个你想要的页面。这样对用户而言就是简单,不用管你内部的实现。主要用在:在层...原创 2018-12-12 19:39:51 · 112 阅读 · 0 评论 -
java设计模式(11):享元模式
java 设计模式之享元模式当前咱们国家正在大力倡导构建和谐社会,其中一个很重要的组成部分就是建设资源节约型社会,“浪费可耻,节俭光荣”。在软件系统中,有时候也会存在资源浪费的情况,例如在计算机内存中存储了多个完全相同或者非常相似的对象,如果这些对象的数量太多将导致系统运行代价过高,内存属于计算机的“稀缺资源”,不应该用来“随便浪费”,那么是否存在一种技术可以用于节约内存使用空间,实现对这些相...转载 2018-11-05 15:10:54 · 192 阅读 · 0 评论 -
java设计模式(10):代理模式
代理模式定义:为其他对象提供一种代理,以控制对这个对象的访问。(Provided a surrogate or placeholder for another object to control access to it)参考:说说 JAVA 代理模式...原创 2018-09-08 13:03:28 · 141 阅读 · 0 评论 -
java设计模式(9):策略模式
定义 策略模式定义了一个抽象类或接口,有多个具体的算法实现这些接口,在客户端使用的时候,只需要有这个接口的引用,在使用的时候,就可以通过这个接口来调用具体不同的实现方法。构成 strategy:抽象的策略算法 concreteStrategy:具体实现的策略算法 context:上下文,包含一个strategy,这个策...原创 2018-07-16 22:04:30 · 150 阅读 · 0 评论 -
java设计模式(8):装饰者模式
简介装饰者模式可以动态的给一些对象增加责任。在扩展功能的问题上,装饰者比类的继承更有弹性。在设计的时候,给一个对象的功能进行一些修饰,对功能进行扩展和增强特点a)相比于继承,灵活性更大b)类的继承会产生很多类,但是使用装饰者模式,会产生很多中间对象。应用a)给一个对象动态的添加职能,不影响其...原创 2018-06-28 11:04:58 · 225 阅读 · 0 评论 -
java设计模式(6):模板方法模式
1.什么是模板模式2.那些场景下使用模板模式3.示例demo4.总结5.参考原创 2018-06-10 14:23:28 · 188 阅读 · 0 评论 -
java设计模式(4):工厂模式
目录1.简单工厂模式1.1普通工厂模式1.2多个工厂方法模式1.3静态工厂模式2.抽象工厂模式1.简单工厂模式1.1普通工厂模式可以创建实现了同一个接口的不能类型的实例。通过传入要生产出来的实例类型,创建实例。1.2多个工厂方法模式对于普通工厂模式,需要根据传入的字符串来生成要创建的实例。而对多个工厂方法模式而言,就是有多个这样的方法,而不用根据传入的字符串...原创 2018-05-23 19:45:47 · 136 阅读 · 0 评论 -
java设计模式(3):单例模式
单例模式单例模式的特点: 1. 确保这个类只有一个实例 2. 确保这个类只有自己可以实例化 3. 确保对外界提供这个唯一的实例单例模式的优点: 1. 控制实例的生成数量,达到节约资源的目的 2. 各个线程之间可以通过单例类实现线程间的通信单例模式的分类: 单例模式的主要实现方式是:懒汉式,饿汉式和登记式单例模式懒汉...原创 2018-05-22 22:27:34 · 130 阅读 · 0 评论 -
java设计模式(2):中介者模式
中介者模式中介者模式的三个参与者:(1)中介者接口:mediator(2)中介者实现类:concreteMediator(3)同事:colleague应用场景若有多个对象之间,相互调用,请求复杂那么可以考虑引入一个“中介”,多个对象都与中介进行联系,不需要互相调用,松耦合,让代码更健壮。可以把上面的网状结构梳理为下面的星形结构。代码示例中介者抽象类,定义接口,同事列表public abstract...原创 2018-04-25 10:48:08 · 145 阅读 · 0 评论 -
java设计模式(1):命令模式
命令模式在一些需求场景中,有发出命令的对象,有执行命令的对象,有具体的命令。但是如果要将这些模型抽象出来可以复用,这就是常见的命令模式。命令模式中的5个角色(1)调用者:负责调用命令对象,执行命令对象的方法(2)执行者:具体执行某一方法(3)抽象命令:一个接口或抽象类,让具体命令实现(4)具体命令:实现抽象命令的具体方法(5)客户端:创建具体的命令对象和其接受者,并执行请求应用场景 ...原创 2018-04-17 20:20:21 · 174 阅读 · 0 评论 -
java设计模式(5):迭代器模式
迭代器模式的定义:对于一组对象的集合(实现Collection接口的数组,列表等),用户不需要关注它的底层实现,而可以通过调用一个统一的接口遍历集合当中的全部元素。最典型的应用就是java的Iterator接口下面用代码来模拟迭代器模式:1.迭代器接口public interface Iterator<E> { boolean hasNext(); E next();}...原创 2018-05-31 16:34:50 · 152 阅读 · 0 评论 -
java设计模式(18):组合模式
组合模式原创 2019-04-07 20:30:36 · 129 阅读 · 0 评论