Java设计模式
文章平均质量分 51
主要讲解了Java实现的23种设计模式
lynnlovemin
李熠,中国石油规划总院高级开发工程师,对Java编码规范和编码技巧有着独特的见解,热衷微服务架构,曾作为中小型企业CTO,带领过超过30人的技术团队。
现专注于网络安全尤其是web渗透方向的研究,长期活跃于各大SRC平台,为其提供漏洞报告。
著有《Spring Cloud实战演练》一书
展开
-
java23种设计模式十五(连载)
备忘录模式备忘录模式又称备份模式、标记模式。顾名思义,其就是在某一时刻保存当前状态,作为备份,以便下次可以使用,或者恢复到上一次的状态。备忘录模式分为三个角色:普通类:用于定义要备份的对象备份类:用于备份普通对象上一次的操作、状态备份管理类:用于保存恢复备份备忘录模式的应用范围很广,我相信大家都下过棋,在下棋时,由于自己的粗心,导致下错了,这时你想悔棋,就会用到备忘录模式。在备忘录模式,我们需要保存上一次下棋的落子点,在当前下棋出现失误的时候,才能恢复到上一次的状态。下面,我就以围棋为原创 2021-06-03 09:38:31 · 299 阅读 · 1 评论 -
java23种设计模式十四(连载)
十四、原型模式 原型模式属于对象的创建模式,它要求对象可以“克隆”自身,从而可以复制本身的对象来创建一个实例。通过原型创建的对象,不需要关心这个实例本身,只要实现了克隆方法,就可以通过这个方法来创建新的实例,而无需new一个对象。 原型模式有两种实现方式:简单式和管理式。 首先我们来看简单式的实现,简单式主要包含三个要素:原型接口、具体的原型实现和客户端,下面我们来看代码: `原创 2017-08-31 15:54:38 · 775 阅读 · 0 评论 -
java23种设计模式十三(连载)
本文主要介绍抽象工厂模式,和上文介绍的工厂方法模式的区别是:工厂方法模式是针对一个产品来构建,而抽象工厂模式则是针对多个产品来构建。下面我直接上代码来阐述抽象工厂模式的具体实现:public final class Factory { public final static Product createProduct(String name){ switch(name){ case "原创 2017-02-23 13:13:46 · 1096 阅读 · 0 评论 -
java23种设计模式十二(连载)
前端时间博主很忙,所以一直到现在才有时间更新博客,请见谅!原创 2017-02-13 12:24:26 · 630 阅读 · 0 评论 -
java23种设计模式十一(连载)
十一、构建者模式 构建者模式主要是用于创建复杂的一些对象,这些对象的创建步骤基本固定,但是可能具体的对象的组成部分却又可以自由的变化,比如房子装修,我可以在卧室里放电视,也可以不放电视,我还可以摆个电脑,这些属性可以自由变化。 要构建这样一个对象,就需要一个创建一个Builder,用于构建需要的对象。 import java.util.HashMap;import原创 2016-10-10 14:31:01 · 1417 阅读 · 0 评论 -
java23种设计模式十(连载)
十、享元模式 享元模式(Flyweight Pattern)顾名思义,就是多个对象共享一个对象,即共用一个内存地址,在实际应用中,采用享元模式的好处就是可以大大节约内存空间,提高系统的运行效率。享元模式经常会出现在工厂模式当中,下面是具体的实现代码:首先创建一个享元类:public abstract class Flyweight { public abstrac原创 2016-08-22 15:56:00 · 1654 阅读 · 0 评论 -
java23种设计模式九(连载)
九、责任链模式 通过字面意思我们大概能想到他是一个链条,每个人只负责自己可以做的事,不能做的事交给另外的人来做,这样就形成了一个链条,比如软件开发流程,客户提出了需求,但是要开发出一套完整的软件,要有美工、产品经理、程序员等角色,那么产品经理负责设计产品,产品设计完了后交给美工来做效果图,最后由程序员来实现功能。这就是一种责任链模式。 接下来请看实现的代码:原创 2016-08-11 12:54:36 · 1458 阅读 · 0 评论 -
java23种设计模式八(连载)
八、代理模式 代理模式顾名思义就是构建一个代理类,来接管原来的类的工作,比如家里水管爆了,自己不修,则请工人来维修,买房子,自己请中介帮忙买,例子的工人、中介就是一个代理。下面请看代码实现: public interface Source { public void method();}public class CocretSource imp原创 2016-08-09 17:37:15 · 1397 阅读 · 0 评论 -
java23种设计模式七(连载)
七、调停者模式 调停者模式包装了一系列相互作用的对象,使得这些对象相互之间不必显式的引用,从而极大的降低了对象间的耦合性,调停者模式通过引入调停者作为中间人,使得对象间既不用相互作用又能相互影响。 调停者模式一般有以下几个角色: 调停者:只是一个接口,定义了同事对象到调停者对象间的接口,可以是一个或多个方法 具体的原创 2016-08-09 14:02:31 · 1410 阅读 · 0 评论 -
java23种设计模式六(连载)
六、观察者模式定义:一种对象对另一种对象存在某种依赖关系,当一个对象发生改变的时候,需要改变另一个对象的状态。在设计一个系统的时候,经常会有这样一个需求,如果一个对象发生改变,需要改变另一个对象的数据。比如:android客户端的一个控件ListView,当数据发生改变的时候,我们需要通知对象,刷新当前控件。观察者模式一般有以下四个角色:观察者:作用是观察每个对象是否需要改变原创 2016-08-09 09:56:07 · 2192 阅读 · 0 评论 -
java23种设计模式五(连载)
五、单例模式 单例模式下,有且仅有一个对象存在,当需要一个类只有一个实例的时候采用单例模式,单例模式分为饿汉式和懒汉式,下面请看代码。1、饿汉式public class Singleton { private static Singleton singleton = new Singleton(); private Singleton(){原创 2016-07-20 09:15:30 · 1600 阅读 · 0 评论 -
java23种设计模式四(连载)
四、桥接模式 桥接模式关注抽象的设计,顾名思义,你可以创建一个桥,然后把这些抽象方法移到接口中。这样,抽象就将依赖于接口的实现。 桥接模式的意图是将抽象与抽象方法的实现相互分离来实现解耦,以便二者可以相互独立的变化。 桥接模式的好处:优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务上,这样类和类继承层次会保持较小规模,并且不大可能增原创 2012-11-18 12:56:33 · 1818 阅读 · 3 评论 -
java23种设计模式三(连载)
三、组合模式 组合模式,也叫合成模式,树模式,它是一组对象的组合,这些对象可以是容器对象,表现为组的概念。 组合模式的意图是为了保证客户端调用单对象于组合对象的一致性。 涉及角色: 1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。 2.Leaf 在组合中表示原创 2012-11-17 16:01:41 · 1632 阅读 · 0 评论 -
java23种设计模式二(连载)
二、外观模式 外观模式为他的子系统提供一个接口,使子系统能够更加方面的使用。使用外观模式,只需要少量代码,就能提供典型的、无修饰用法的类库中的类。一个外观就是一个类,它包含的功能介于工具包与完整的应用程序之间,为工具包或子系统的类提供了简单的用法。 外观类、工具类和示例类 外观类的方法可能都是静态方法,这种情况下,外观类在UML中被称作工具类。示例类就是演示如何使用类原创 2012-11-13 18:33:04 · 2290 阅读 · 2 评论 -
java23种设计模式一(连载)
设计模式概要 设计模式,顾名思义,它是一种模式,在面向对象中,它运用类与它们的方法来达到目标。使用它便于代码的可重用和可读性,有利于系统的维护。《Design pattern》一书中首次提出了23种设计模式,倘若你想成为编程高手,就必须要学习设计模式。 以下列出《Design pattern》一书中描述的23种设计模式,它们分别是:1、适配器模式2、外原创 2012-11-12 13:26:56 · 3914 阅读 · 0 评论