Java设计模式
23种Java设计模式笔记
MarkZQP
坚持每周至少更新两篇博客
展开
-
23种设计模式之访问者模式-Java语言-(十四)
链接 这篇访问者模式的文章写的特别好:https://www.jianshu.com/p/1f1049d0a0f4转载 2020-07-27 17:27:45 · 112 阅读 · 0 评论 -
23种设计模式之命令模式-Java语言-(十三)
基本介绍 命令模式(CommandPattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计 命令模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。 在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。 通俗易懂的理解:将军发布命令,士兵去执行。其中有几个角色:原创 2020-07-24 14:35:46 · 115 阅读 · 0 评论 -
23种设计模式之模板模式-Java语言-(十二)
基本介绍 模板方法模式(TemplateMethodPattern),又叫模板模式(TemplatePattern),z在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 简单说,模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤 这种类型的设计模式属于行为型模式。 模板模式UML类图 角色说明 AbstractClass抽象类,类中实现了模板方法(temp原创 2020-07-23 14:41:02 · 143 阅读 · 0 评论 -
23种设计模式之代理模式-Java语言-(十一)
代理模式分类 静态代理 动态代理 静态代理原创 2020-07-22 10:42:44 · 206 阅读 · 0 评论 -
23种设计模式之享元模式-Java语言-(十)
基本介绍 享元模式(FlyweightPattern)也叫蝇量模式:运用共享技术有效地支持大量细粒度的对象 常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个 享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率 享元模式经典的应用场景就是池技术了,String常量池、数据库连接池、缓冲池等原创 2020-07-20 11:16:29 · 127 阅读 · 0 评论 -
23种设计模式之外观模式-Java语言-(九)
个人感觉外观模式,是最容易理解的设计模式了 基本介绍 外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节 外观模式的UML类图 图解说明: 外观类(Facade):为调用端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当子系统对象 调用者(Cli原创 2020-07-19 15:10:18 · 110 阅读 · 0 评论 -
23种设计模式之组合模式-Java语言-(八)
基本介绍 组合模式(CompositePattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种类型的设计模式属于结构型模式。 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象 组合模式的UML图示及其角色 Component: 这是组合中对象声明接口,在适当情况下,实现所有类共有的接口默认行为,用于访问和管理Compon原创 2020-07-17 11:35:36 · 143 阅读 · 0 评论 -
23种设计模式之装饰者模式-Java语言-(七)
基本定义 装饰者模式:动态的将新功能附加到对象上。 在对象功能扩展方面,它比继承更具有弹性,装饰者模式也体现了开闭原则。 这里提到的动态的将新功能附加到对象和ocp原则,在后面的应用实例上会以代码的形式展现。 装饰者模式原理 装饰者模式在星巴克咖啡的比喻如下所示: 主体:比如——各式各样的咖啡 包装:比如——各种各样的调料 Component主体:比如类似前面的Drink ConcreteComponent和DecoratorConcreteComponent:具体的主体,比如前面的各个单品原创 2020-07-16 15:32:59 · 133 阅读 · 0 评论 -
23种设计模式之桥接模式-Java语言-(六)
111111111111转载 2020-07-15 19:41:12 · 130 阅读 · 0 评论 -
23种设计模式之适配器模式-Java语言-(五)
基本介绍 适配器模式(AdapterPattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper) 适配器模式属于结构型模式 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。主要介绍类适配器模式、对象适配器模式。 **注:**在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系。 适配器模式里涉及的三个角色 Target(目标抽象类)原创 2020-07-14 19:35:14 · 120 阅读 · 0 评论 -
23种设计模式之建造者模式-Java语言-(四)
建造者模式基本介绍 建造者模式(BuilderPattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。 核心:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的四个角色: Product(产品角色):一个具体的产品对象。例如 Co原创 2020-07-12 15:57:57 · 138 阅读 · 0 评论 -
23种设计模式之原型模式-Java语言-(三)
原型模式介绍 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节 工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即对象.clone() 原型模式的原理结构uml图: 图说明: Prototype:原型类,声明一个克隆自己的接口 ConcretePrototype:具体的原型类,实现原创 2020-06-23 11:13:53 · 135 阅读 · 0 评论 -
23种设计模式之工厂模式-Java语言-(二)
工厂模式核心及其分类 工厂模式的核心思想:实现了创建者和调用者的分离 分类: 简单工厂模式 工厂方法模式 抽象工厂模式 简单工厂模式 该模式对对象创建管理方式最为简单,因为其仅仅简单的对不同类对象的创建进行了一层薄薄的封装。该模式通过向工厂传递类型来指定要创建的对象,其UML类图如下: 用手机生成来讲解该模式: Phone类:手机标准规范类(AbstractProduct) public interface Phone { void make(); } MiPhone类:制造小米手机(Pro转载 2020-06-20 10:54:11 · 126 阅读 · 0 评论 -
23种设计模式之单例模式-Java语言-(一)
设计模式的分类 创建型模式:单例模式,抽象工厂模式,原型模式,建造者模式,工厂模式 结构型模式:适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式 行为模式:模板方法模式,命令模式,访问者模式,迭代器模式,观察者模式,中介模式,备忘录模式,解释器模式,状态模式,策略模式,职责链模式 单例设计模式介绍 ...原创 2020-06-18 09:59:13 · 117 阅读 · 0 评论 -
Java设计模式之七大设计原则
设计模式的目的 编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好: 1. 代码重用性 2. 可读性 3. 可扩展性 4. 可靠性 设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据) 单一职责原则 对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A原创 2020-06-17 09:37:03 · 139 阅读 · 0 评论