Java设计模式
阿涛的敲码时光
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
18、观察者模式
观察者模式文章目录观察者模式概述结构结构实现练习源代码观察者模式优/缺点与适用环境优点缺点适用环境概述观察者模式:定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式的别名包括发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式、从属者(Dependents)模式。观察者模式是一种对象行为型模式。一个对象的状态或行为的变化将导致其他对象的状态或行为原创 2020-12-20 00:54:49 · 1180 阅读 · 1 评论 -
17、状态模式及其扩展
状态模式文章目录状态模式概述结构结构实现练习源代码共享状态练习使用环境类实现状态转换练习状态模式优/缺点与适用环境优点缺点适用环境概述状态模式:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式又名为状态对象(Objects for States),状态模式是一种对象行为型模式。状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对原创 2020-12-20 00:54:02 · 409 阅读 · 1 评论 -
16、模板方法模式
模板方法模式文章目录模板方法模式概述结构结构实现练习源代码模板方法模式优/缺点与适用环境优点缺点适用环境概述模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板原创 2020-12-19 16:16:31 · 784 阅读 · 1 评论 -
15、职责链模式
职责链模式文章目录职责链模式概述结构结构实现练习源代码纯与不纯的职责链模式纯的职责链模式不纯的职责链模式职责链模式优/缺点与适用环境优点缺点适用环境概述职责链模式:避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求。将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止。职责链又称为责任链模式,是一种对象行为型模式。在系统中如果存在多个对象可以处理同一请求,则可以通过职责链模式将这些处理请求的对象连成一条链,让请求沿着该链进行传递。如果链上的对象可以处原创 2020-12-19 15:53:59 · 239 阅读 · 1 评论 -
14、享元模式
享元模式文章目录享元模式概述结构结构实现练习源代码有外部状态的享元模式单纯享元模式与复合享元模式单纯享元模式复合享元模式享元模式优/缺点与适用环境优点缺点适用环境概述享元模式:运用共享技术有效地支持大量细粒度对象的复用。享元模式要求能够被共享的对象必须是细粒度对象,它又称为轻量级模式,享元模式是一种对象结构型模式。在享元模式中提供了一个享元池用于存储已经创建好的享元对象,并通过享元工厂类将享元对象提供给客户端使用。享元模式通过共享技术实现相同或相似对象的重用,在逻辑上每一个出现的字符都有一个对象原创 2020-12-19 15:27:44 · 250 阅读 · 1 评论 -
13、组合模式
组合模式文章目录组合模式概述结构结构实现练习源代码透明组合模式与安全组合模式透明组合模式安全组合模式组合模式优/缺点与适用环境优点缺点适用环境概述组合模式:组合多个对象形成树形结构以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象。组合模式又称为“部分-整体”模式,属于对象结构型模式,它将对象组织到树形结构中,可以用来描述整体与部分的关系。组合模式使用面向对象的方式来处理树形结构,它为叶子构件和容器构件提供了一个公共的抽象构件类,客户端可以针对抽象构件进行处理,而无原创 2020-12-19 14:40:54 · 229 阅读 · 1 评论 -
12、建造者模式
建造者模式文章目录建造者模式概述结构结构实现练习源代码指挥者类的深入讨论省略Director钩子方法的引入建造者模式优/缺点与适用环境优点缺点适用环境概述建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式,它将客户端与包含多个部件的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。建造者模式可以将部件本身和它们的组装过程分开,关注如何一步一步创建一个包含多个组成部分的复杂对象,用原创 2020-12-18 23:28:56 · 531 阅读 · 1 评论 -
11、抽象工厂模式
抽象工厂模式文章目录抽象工厂模式概述结构结构实现练习源代码抽象工厂模式优/缺点与适用环境优点缺点适用环境概述抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为工具模式,它是一种对象创建型模式。在工厂方法模式中每一个具体工厂只需要生产一种具体产品,但是在抽象工厂模式中一个具体工厂可以生产一组相关产品,这样的一组产品称为产品族,产品族中的每一个产品都分属于某一个产品继承等级结构。结构抽象工厂模式包含以下4个角色:AbstractFactor原创 2020-12-18 22:52:25 · 306 阅读 · 1 评论 -
10、装饰模式
装饰模式文章目录装饰模式概述结构结构实现练习源代码透明装饰模式与半透明装饰模式透明装饰模式半透明装饰模式装饰模式优/缺点与适用环境优点缺点适用环境概述装饰模式:动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。装饰模式是一种对象结构型模式,它以对客户透明的方式动态地给一个对象附加上更多的责任,可以在不需要创建更多子类的情况下让对象的功能得以扩展。装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使原创 2020-12-18 22:19:56 · 224 阅读 · 1 评论 -
9、桥接模式
桥接模式文章目录桥接模式概述结构结构实现练习源代码桥接模式优/缺点与适用环境优点缺点适用环境概述桥接模式:将抽象部分与它的实现部分解耦,使得两者都能够独立变化。桥接模式是一种对象结构型模式,它又被称为柄体模式或接口模式。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联取代了传统的多层继承,将类之间的静态继承关系转换为动态的对象组合关系,使得系统更加灵活,并易于扩展,同时有效控制了系统中类的个数。如果系统中的某个类存在两个独立变化的维度,通过桥接模式可以将这两个维度分离出来,使两者可以独立原创 2020-12-18 22:19:18 · 314 阅读 · 1 评论 -
8、原型模式
原型模式文章目录原型模式概述结构结构实现浅克隆与深克隆浅克隆深克隆实现通用实现方法Java语言中的clone()方法和Cloneable接口练习源代码模式优/缺点与适用环境优点缺点适用环境概述原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。原型模式是一种对象创建型模式,将一个原型对象传给要发动创建的对象(即客户端对象),这个要发动创建的对象通过请求原型对象拷贝自己来实现创建过程。原型模式是一种特殊的创建型模式,它通过复制一个已有对象来获取更多相同或相似的对象。创建克隆原创 2020-12-18 16:23:39 · 509 阅读 · 1 评论 -
7、外观模式
外观模式文章目录外观模式概述结构结构实现练习源代码抽象外观类案例模式优/缺点与适用环境优点缺点适用环境概述外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,是一种对象结构型模式。通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与子系统的耦合度。在外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类与子系统的内部复杂性分隔开,使得客户类只需要与外观角色打交道,而不需要与原创 2020-12-18 14:51:24 · 904 阅读 · 0 评论 -
6、代理模式及扩展
代理模式及扩展文章目录代理模式及扩展概述结构结构实现代理模式分类练习源代码代理模式优/缺点与适用环境优点缺点适用环境概述代理模式:给某一对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。代理模式是一种对象结构型模式。在代理模式中引入了一个新的代理对象,代理对象在客户端对象和目标对象之间起到中介作用,它去掉客户不能看到的内容和服务或者增添客户需要的额外的新服务。与代购网站类似的功能。当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所原创 2020-12-18 14:13:28 · 305 阅读 · 0 评论 -
5、单例模式及扩展
单例模式文章目录单例模式概述结构结构实现练习1源代码1练习2源代码2优缺点及适用环境优点缺点适用环境单例模式扩展饿汉式单例模式结构图结构实现懒汉式单例类与双重检查锁定结构图结果实现饿汉式单例类与懒汉式单例类的比较使用静态内部类实现单例模式概述单例模式:确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。单例模式是一种对象创建型模式。单例模式有3个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是结构最简单的设计模式,在它的核心结原创 2020-10-25 23:35:43 · 1716 阅读 · 0 评论 -
4、工厂方法模式及扩展
工厂方法模式及扩展文章目录工厂方法模式及扩展概述结构结构实现练习源代码工厂方法的重载工厂方法的隐藏工厂模式的优缺点以及使用环境优点缺点适用环境概述工厂方法模式:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式简称工厂模式,又可称作虚拟构造器模式或多态工厂模式。工厂方法模式是一种类创建型模式。工厂父类负责定义创建产品对象的公共接口,而工厂子类负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来原创 2020-10-25 19:42:21 · 644 阅读 · 1 评论 -
3、简述策略模式及其使用方法
简述策略模式及其使用方法作者:阿涛优快云博客主页:https://blog.youkuaiyun.com/qq_43313113文章目录简述策略模式及其使用方法概念结构优缺点及使用范围优点缺点适用环境使用方法练习题目源代码概念定义:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户而变化。在策略模式中可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里每一个封装算法的类都可以称为一种策略,为了保证这些策略在使用时具有一致性,一般会提供一个抽原创 2020-10-03 11:48:37 · 2400 阅读 · 0 评论 -
2、简单工厂模式扩展
简单工厂模式扩展作者:阿涛优快云博客主页:https://blog.youkuaiyun.com/qq_43313113文章目录简单工厂模式扩展前言练习题目源代码结论前言这里讲的简单工厂模式是使用xml配置文件来获取参数,关于简单工厂模式的基础请看上一篇文章。在上一篇文章中,可以知道下面这行代码是将sign参数传入工厂类,从而创建具体产品对象。Operator product = Factory.getOperator("+");不难发现,这种方式下创建对象必须通过修改客户端代码中静态工厂方法的参数原创 2020-10-02 21:33:02 · 343 阅读 · 0 评论 -
1、简单工厂模式实现计算器功能
简单工厂模式实现计算机功能文章目录简单工厂模式实现计算机功能简介创建型模式简单工厂模式概述流程结构理解类图优点缺点适用环境练习题目源代码简介创建型模式了解简单工厂模式之前,首先要先了解下创建型模式,接下来的Java设计模式的学习,将会逐步学习创建型模式下的6种模式。创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。在GoF设计模式中包含5种创建型模式,通常将一种非GoF设计模式——简单工厂模式作为学习其他工厂模式原创 2020-10-02 20:08:55 · 4512 阅读 · 1 评论
分享