JAVA设计模式
文章平均质量分 92
将JAVA中的设计模式进行整理,从而方便大家的学习
丘山一郎
这个作者很懒,什么都没留下…
展开
-
设计模式总结与对比
一、一句话归纳设计原则二、设计模式分类设计模式总结的是经验之谈总结的是前人的经验,提供给后人去借鉴使用,前人栽树,后人乘凉。设计模式可以帮助我们提升代码的可读性、可扩展性;降低维护成本;解决复杂的业务问题,但是,千万千万不要死记硬背,生搬硬套。下面我们还是先来总体预览一下GOF23种设计模式的归纳和总结。三、一句话归纳设计模式各设计模式对比及编程思想总结...原创 2021-09-20 18:10:13 · 151 阅读 · 0 评论 -
观察者模式和访问者模式
·一、观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。观察者模式的优点和缺点优点:1)观察者与被观察者抽象耦合,容易扩展;2)建立了一套触发机制。缺点:1)循环依赖会导致系统崩溃;2)观察者太多会浪费时间。二、观察者模式实例观察者模式使用三个类 Subject、Observer 和 Client。Subject 对象带有绑定观察者到 Client 对象和从 Clien原创 2021-09-20 13:32:31 · 1563 阅读 · 0 评论 -
中介者模式与解释器模式
一、中介者模式介绍为什么引入中介模式?在现实生活中,中介者的存在是不可缺少的,如果没有了中介者,我们就不能与远方的朋友进行交流了。而在软件设计领域,为什么要使用中介者模式呢?如果不使用中介者模式的话,各个同事对象将会相互进行引用,如果每个对象都与多个对象进行交互时,将会形成如下图所示的网状结构。从上图可以发现,如果不使用中介者模式的话,每个对象之间过度耦合,这样的既不利于类的复用也不利于扩展。如果引入了中介者模式,那么对象之间的关系将变成星型结构,采用中介者模式之后会形成如下图所示的结构:从上图原创 2021-09-20 11:03:07 · 291 阅读 · 0 评论 -
状态模式与备忘录模式
一、状态模式状态模式( State Pattern ) 也称为状态机模式(State Machine Pattern), 是允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类,属于行为型模式。原文:Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.解释:允许对象在内部状态发生改变时改变它的行为,对象看起来原创 2021-09-19 23:18:51 · 367 阅读 · 0 评论 -
迭代器模式与命令模式详解
一、迭代器模式的定义迭代器模式( Iterator Pattern ) 又称为游标模式(Cursor Pattern), 它提供一种顺序访问集合/容器对象元素的方法,而又无须暴露集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,而不用关心容器内容元素组成结构,属于行为型模式。原文 : Provide a way to access the elements of an aggregate object sequentially without exposing its under lyi原创 2021-09-19 18:30:23 · 512 阅读 · 0 评论 -
策略模式和责任链模式
一、策略模式策略模式( Strategy Pattern )又叫也叫政策模式( Policy Pattern) ,它是将定义的算法家族、分别封装起来,让它们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户。属于行为型模式。原文: Define a family of algor ithms, encapsulate each one, and make them inter changeable.**策略模式在生活场景中应用也非常多。**比如一个人的交税比率与他的工资有关,不同的工资水平原创 2021-09-19 17:45:39 · 4811 阅读 · 1 评论 -
委派模式与模板模式
一、委派模式定义委派模式(Delegate Pattern)又叫委托模式,是一种面向对象的设计模式,允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用和分配任务,是一种特殊的静态代理,可以理解为全权代理,但是代理模式注重过程,而委派模式注重结果。委派模式属于行为型模式。二、委派模式真实案例从类图中我们可以看到, 委派模式有三个参与角色:抽象任务角色( Task ) : 定义一个抽象接口, 它有若干实现类。委派者角色( Delegate ) : 负责在各个具体角色实例之间做出决策并原创 2021-09-19 13:11:50 · 226 阅读 · 0 评论 -
适配器模式与桥接模式
一、适配器模式三种情况适配器模式,顾名思义,就是把原本不兼容的接口,通过适配,使之兼容。举个生活中简单的例子,以前的手机内存卡可以取出来,但是想和电脑之间传输音乐、视频等资料不能直接传输,需要通过USB读卡器,然后插入USB接口就可以传输了,这个USB读卡器就相当于适配器。你经常使用的手机或电脑充电器,也属于适配器,它将220V的交流电转换为手机可用的直流电。下面,以手机充电器为例讲解适配器模式。适配器模式一般分为三类:类适配器模式、对象适配器模式、接口适配器模式(缺省适配器模式)1.类适配器模式原创 2021-09-12 17:20:14 · 2049 阅读 · 0 评论 -
享元模式与组合模式
一、享元模式定义享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于 享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种 对象结构型模式。模式所涉及的角色 Flyweight: 享元接口,通过这个接口传入外部状态并作用于外部状态; ConcreteFlyweight: 具体的享元实现对象,必须是可共享的,需要封装享元对象的内部状态; Unshare原创 2021-09-12 09:07:52 · 415 阅读 · 0 评论 -
门面模式 与 装饰器模式
一、门面模式定义定义:又叫门面模式,提供了一个统一的接口,用来访问子系统中的一群接口外观模式定义了一个高层接口,让子系统更容易使用类型:结构型UML类图门面模式是对系统复杂的关系处理做了一个封装,对外提供一个简单的接口,成员介绍:子系统:被门面模式封装的子系统,也是具体业务逻辑的细节facade类:门面类,对子系统执行流程进行封装,对外开放功能接口,一般为单例对象。二、门面模式实例门面模式主要包含2种角色:**外观角色(Facade):**也称门面角色,系统对外的统一接口;**子原创 2021-09-05 19:34:48 · 418 阅读 · 0 评论 -
静态代理、动态代理(JDK动态代理,Cglib动态代理)
代理原创 2021-09-04 22:10:43 · 275 阅读 · 3 评论 -
原型模式 与 建造者模式
一、原型模式原型模式(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,属于创建型模式。原型模式的核心在于拷贝原型对象。以系统中已存在的一个对象为原型,直接基于内存二进制流进行拷贝,无需再经历耗时的对象初始化过程(不调用构造函数),性能提升许多。当兑现的构建过程比较耗时时,可以利用当前系统中已存在的对象作为原型,对其进行克隆(一般是基于二进制流的复制),躲避初始化过程,使得新对象的创建时间大大减少。下面,我们来看看原型模式类结构图。在这里插入代码片原创 2021-08-08 17:38:17 · 362 阅读 · 0 评论 -
单例模式的应用
单例模式定义:单例模式(Singlleton Pattern) 是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。一、饿汉式优点:执行效率高,性能高,没有任何的锁缺点:某些情况下,可能会造成内存浪费二、懒汉式优点:节省了内存缺点:线程不安全的问题三、线程式四、...原创 2021-08-02 22:07:48 · 1832 阅读 · 0 评论 -
工厂设计模式、简单工厂设计模式、抽象工厂设计模式
工厂设计模式原创 2021-07-27 21:08:16 · 199 阅读 · 0 评论