java设计模式
文章平均质量分 73
java设计模式
张钰杰188
这个作者很懒,什么都没留下…
展开
-
java设计模式-责任链模式
责任链模式原创 2022-06-19 19:44:54 · 577 阅读 · 0 评论 -
java设计模式-解释器模式
解释器模式原创 2022-06-05 13:30:21 · 563 阅读 · 0 评论 -
Java设计模式-迭代器模式
迭代器模式原创 2022-05-29 16:16:34 · 282 阅读 · 0 评论 -
java设计模式-中介者模式
中介者模式原创 2022-05-15 14:51:00 · 178 阅读 · 0 评论 -
java设计模式-备忘录模式
备忘录模式详解备忘录模式又叫作快照模式或Token模式,是一种对象的行为模式。在备忘录模式里,一个备忘录是一个对象,它存储另一个对象(原发器对象)在某个瞬间的内部状态。备忘的目的就是为了以后在需要的时候,可以将原发器对象的状态恢复到备忘录所保存的状态。备忘录的本质:保存和恢复状态设计意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复(undo/rollback)到原先保存的状态了。备忘录模式的结构备忘录模式涉及的角色及其职责如下:原发器角色:原创 2022-05-08 19:32:00 · 1061 阅读 · 0 评论 -
java设计模式-观察者模式
观察者模式介绍:观察者模式(有时又被称为发布/订阅模式)是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。简单案例:假设猫是老鼠和狗的观察目标,老鼠和狗是观察者,猫叫老鼠跑,狗也跟着叫,使用观察者模式描述该过程抽象目标类 MySubjectMySubject是抽象目标类,在其中定义了一个ArrayList类型的集合observers,用于存储观察者对象,并原创 2022-04-24 16:27:47 · 1992 阅读 · 0 评论 -
java设计模式-状态模式
状态模式介绍:当一个对象在内在状态改变时,允许改变起行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。简例工作状态-分类板package com.example.designmode.statepattern;import lombok.Data;/** * <h3>design-mode</h3> * <p>工作状态-分原创 2022-04-24 15:46:45 · 2343 阅读 · 1 评论 -
java设计模式-策略模式
一、策略模式定义Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换 。二、策略模式的结构封装类:也叫上下文,对策略进行二次封装,目的是避免高层模块对策略的直接调用。抽象策略:通常情况下为一个接口,当各个实现类中存在着重复的逻辑时,则使用抽象类来封装这部分公共的代码,此时,策略模式看上去更像是模版方法模式。原创 2022-04-10 16:29:55 · 297 阅读 · 0 评论 -
java设计模式-模板模式
模板方法模式,一般是为了统一子类的算法实现步骤,所使用的一种手段或者说是方式。它在父类中定义一系列算法的步骤,而将具体的实现都推迟到子类。最典型的形式就是一个接口,一个抽象父类中会有一系列的抽象方法,而在子类中去一一实现这些方法。例如我们有一个接口,里面就一个方法,是用来制造一个HTML页面,如下:package com.example.designmode.templatemethod;/** * <h3>design-mode</h3> * <p><原创 2022-04-05 16:08:11 · 171 阅读 · 0 评论 -
java设计模式-访问者模式
访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。角色1.Visitor 抽象访问者角色,为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色,这样访问者就可以通过该元素角色的特定接口直接访问它。2.ConcreteVisitor.具体访问者角色,实现Visitor声明的接口。3.Element 定义一个接受访问操作(accept()),它以一个访问者(Visitor)作为原创 2022-03-27 18:05:45 · 434 阅读 · 0 评论 -
java设计模式-代理模式
代理模式:代理模式还是比较好理解,就是委托别人做事情,比如我们要租房子,委托中介去找房子,这就是代理模式。代理模式分为静态代理模式和动态代理模式。静态代理:package com.example.designmode.proxy;/** * <h3>design-mode</h3> * <p>定义消费者接口,查找指定区域,指定价格以下的房子</p> * * @author : ZhangYuJie * @date : 2022-03-27原创 2022-03-27 15:06:05 · 411 阅读 · 0 评论 -
java设计模式-享元模式
一、享元模式享元模式解决的就是在有大量对象时,有可能会造成内存溢出,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建,说白了就是对象的复用,而不是每次都直接新创建一个对象。享元模式核心就是相同或者相似对象的共享复用,分享的是对象相同的部分,而不同的部分用接口暴露出去根据环境动态的设置,而这在享元模式中分别叫做内部状态与外部状态。接口暴露的就是对象可以改变的部分,称作外部状态,而那些通过外部设置但是不允许共享的部分称作内部状态。并且外部状态的改变不能影响内部状态。享元模式很重要一点是分离原创 2022-03-20 15:48:44 · 288 阅读 · 0 评论 -
java设计模式-外观模式
外观模式概念外观模式又称为门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个搞层次接口,使得这一个子系统更加容易使用。这一模式完美的体现了依赖倒转原则和迪米特法则的思想,所以是非常常用的模式之一。外观模式UML图外观模式代码学习外观模式我使用的例子是一个打架的例子,打架一般都不希望被人看见,只要知道打了人了就可以了。package com.example.designmode.facade;/** * <h3>design-mode</h3> *原创 2022-03-13 19:59:53 · 1253 阅读 · 0 评论 -
java设计模式-装饰模式
一、 概述:装饰器模式作用是针对目标方法进行增强,提供新的功能或者额外的功能。不同于适配器模式和桥接模式,装饰器模式涉及的是单方,和代理模式相同,而且目标必须是抽象的。而实际上,装饰器模式和代理模式的实现方式基本一致,只在目标的存在上有些差别,这个后面我们具体讲述。二、 初步分析上面提到了两点:涉及的是单方目标是抽象的我们来想一下,所谓单方主要指的是在整个装饰器模式中不存在双方调用,要解决的也不是双方调用的问题,而是解决单方提供对外服务的问题,这个单方在自行对外提供服务时,功能不足,或者我们原创 2022-03-06 14:51:29 · 178 阅读 · 0 评论 -
Java设计模式-组合模式
JAVA 设计模式 组合模式用途组合模式 (Component)将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有唯一性。组合模式是一种结构型模式。结构在这里插入图片描述Component : 组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理 Component 的子部件。package com.example.designmode.component;/** * <h3>des原创 2022-02-27 16:41:14 · 338 阅读 · 0 评论 -
java设计模式-桥梁模式
桥接模式桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”桥梁模式的用意桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这个模式对于理解面向对象的设计原则,包括“开-闭”原则以及组合/聚合复用原则都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。桥梁模式的用意是“将抽象化(Abstraction)原创 2022-02-20 15:59:47 · 369 阅读 · 0 评论 -
java设计模式-适配器模式
1 初步认识适配器模式的定义将一个类的接口转成客户期望的另外一个接口。适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作。大白话适配器模式就像旅行插座转换器(图1)2 适配器模式结构图如图所示,Client不能直接访问Adaptee。Adapter是适配器,它将Adaptee转换成Client能访问的接口。所以通过适配器Adapter,用户端就可以访问Adaptee。3 使用场景例子手机想要投影到投影仪上,由于手机是Type-c接口,投影仪是VGA接口。不能直接投影,需要一原创 2022-02-13 18:02:10 · 355 阅读 · 0 评论 -
Java设计模式-原型模式
一、原型模式原型模式与构造器模式、单例模式、工厂方法模式、抽象工厂模式一样,都属于创建型模式。原型模式理解起来,相对简单,来看下其定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式的实例的拷贝包括浅复制和深复制:浅复制:将一个对象复制后,其基本数据类型的变量都会重新创建,而引用类型的变量指向的还是原对象所指向的,也就是指向的内存堆地址没变。深复制:将一个对象复制后,不论是基本数据类型还是引用类型,都是重新创建的。从以上可以看出,浅复制中的引用类型只是复制了变量的值,其原创 2022-01-23 17:10:07 · 460 阅读 · 0 评论 -
java设计模式-建造者模式
介绍创建者模式又叫建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。适用场景隔离复杂对象的创建和使用,相同的方法,不同执行顺序,产生不同事件结果多个部件都可以装配到一个对象中,但产生的运行结果不相同产品类非常复杂或者产品类因为调用顺序不同而产生不同作用初始化一个对象时,参数过多,或者很多参数具有默认值Builder模式不适合创原创 2022-01-16 22:42:47 · 789 阅读 · 0 评论 -
java设计模式-抽象工厂模式
概念:所谓抽象工厂模式就是提供一个接口,用于创建相关或者依赖对象的家族,而不需要明确指定具体类。它允许客户端使用抽象的接口来创建一组相关的产品,而不需要关心实际产出的具体产品是什么。这样一来,客户就可以从具体的产品中被解耦。它的优点是隔离了具体类的生成,使得客户端不需要知道什么被创建了,而缺点就在于新增新的行为会比较麻烦,因为当添加一个新的产品对象时,需要更改接口及其下的所有子类。特点:可以在类的内部对产品族中相关联的多等级产品共同管理,而不必专门引入多个新的类来进行管理。当增加一个新的产品族时不原创 2022-01-09 20:59:23 · 162 阅读 · 0 评论 -
java设计模式-工厂方法模式
JAVA 设计模式工厂方法模式(Factory Method)工厂模式( factory model)1.普通的工厂模式,就是创建一个普通的工厂类,根据相应的参数建造相应的对象首先,创建二者的共同接口:/** * <h3>design-mode</h3> * <p>工厂模式发送接口</p> * * @author : ZhangYuJie * @date : 2022-01-03 15:48 **/public interface Se原创 2022-01-03 16:52:52 · 391 阅读 · 0 评论 -
java设计模式-单例模式
java设计模式-单例模式一、概述单例模式的定义就是确保某一个类只有一个实例,并且提供一个全局访问点。属于设计模式三大类中的创建型模式。单例模式具有典型的三个特点:只有一个实例。自我实例化。提供全局访问点。二、优缺点优点:由于单例模式只生成了一个实例,所以能够节约系统资源,减少性能开销,提高系统效率,同时也能够严格控制客户对它的访问。缺点:也正是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了“单一职责原则”,同时也没有抽象类,这样扩展起来有一定的困难。三、常见实现方式常原创 2021-12-26 16:40:40 · 135 阅读 · 0 评论