
设计模式
文章平均质量分 85
Andy_Zheng.
这个作者很懒,什么都没留下…
展开
-
Java设计模式-策略模式(十)
一、什么是策略模式原创 2021-05-10 22:30:30 · 281 阅读 · 1 评论 -
Java设计模式-桥梁模式(九)
一、什么是桥梁模式桥梁模式也叫做桥接模式(Bridge Pattern),是一个比较简单的模式。其定义如下:将抽象与实现解耦,使得两者可以独立的变化二、示例程序三、UML在Bridge模式中有以下登场角色。1、Abstraction(抽象化)该角色位于类的功能层次最上层。它使用Implementor角色的方法定义 了基本的功能。该角色中保存了Implementor角色的实例。在示例程序中,由display扮演了此角色。2、RefinedAbstraction(改善后的抽象化)原创 2021-05-08 14:14:31 · 212 阅读 · 2 评论 -
Java设计模式-抽象工厂模式(八)
一、什么是抽象工厂模式为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类,这称之为抽象工厂模式(Abstract Factory)。我们并不关心零件的具体实现,而是只关心接口(API)。我们仅使用该接口(API)将零件组装称为产品。二、示例程序1、抽象的零件...原创 2021-05-04 12:19:38 · 271 阅读 · 2 评论 -
Java设计模式-建造者模式(七)
一、什么是建造者模式 在建造大楼时,需要先大佬地基,搭建框架,然后自下而上一层一层的盖起来。通常,在建造这种具有复杂结构的物体时,很难一气呵成。我们需要先建造组成这个物体的各个部分,然后分阶段将他们组装起来。 像这种用于组装具有复杂结构的实例称为建造者模式(Builder)二、示例程序三、UML图...原创 2021-04-28 22:09:43 · 209 阅读 · 2 评论 -
Java设计模式-原型模式(六)
目录一、什么是原型模式二、示例程序三、UML图四、拓展思路与项目实战1、不能根据类来生成实例嘛2、类名是束缚嘛一、什么是原型模式用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象,称之为原型模式(Prototype模式)二、示例程序1、Productpackage com.as.module.prototype;/** * 产品 * @author Andy * @date 2021/4/25 22:11 */public in.原创 2021-04-25 23:22:16 · 171 阅读 · 0 评论 -
Java设计模式-单例模式(五)
目录一、什么是单例模式二、示例程序三、UML图四、拓展思路与项目实战1、为什么必须设置限制2、何时生成这个唯一的实例一、什么是单例模式确保在程序中只生成一个实例的模式我们称之为单例模式(Singleton)。二、示例程序1、Singleton类package com.as.module.Singeton;/** * 单例类 * @author Andy * @date 2021/4/24 21:04 */public class Sing.原创 2021-04-24 21:17:34 · 207 阅读 · 0 评论 -
Java设计模式-工厂模式(四)
一、什么是工厂模式 我们在父类中规定处理的流程,在子类中实现具体的处理。如果我们将该模式用于生成实例,它就演变为工厂模式(FactoryMethod)。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。二、示例程序1、Productpackage com.as.module.factory;/** * 抽象产品类 * @author Andy * @date 2021/4/24 17:31 */public ab..原创 2021-04-24 18:10:21 · 236 阅读 · 0 评论 -
Java设计模式-模板模式(三)
一、什么是模板模式在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为模板模式(Template Method)二、UML图登场角色:1、AbstractClass(抽象类)抽象类角色不仅负责实现模板方法,还负责声明在模板方法中所使用到的抽象方法。这些抽象方法由子类ConcreteClass角色负责实现。2、ConcreteClass(具体类)该角色负责具体实现AbstractClass角色中定义的抽象方法。这里实现的方法将会在AbstractClass角色的模板方法原创 2021-04-22 21:13:49 · 169 阅读 · 0 评论 -
Java设计模式-适配器模式(二)
一、什么是适配器模式在程序世界中,经常会存在现有的程序无法直接使用,需要做适当的变换之后才能使用的情况。这种使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作的模式称为Adapter模式(适配器模式)二、UML图1、类适配器的类图(使用继承)2、对象适配器的类图(使用委托)3、角色说明Target(对象):该角色负责定义所需的方法Client(请求者):该角色负责使用target角色所定义的方法进行具体处理。Adaptee(被适配):Adaptee是一个...原创 2021-04-19 23:38:53 · 693 阅读 · 1 评论 -
Java设计模式-迭代器模式(一)
一、什么是迭代器模式提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示二、UML图三、示例程序1、表示集合的接口package com.as.module.iterator;/** * 集合接口 * @author Andy * @date 2021/4/19 20:23 */public interface Aggregate { public abstract Iterator iterator();}2、遍历集合的接口原创 2021-04-19 21:00:32 · 176 阅读 · 0 评论 -
设计模式学习-适配器模式
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问 题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。类的适配器模式核心思想就是:有一个 Source 类,拥有一个方法,待适配,目标接口是 Targetable ,通过 Adapter 类,将 Source 的功能扩展到 Targetable 里,看代码:/** * 源 * @author Andy * @date 2020/6/28 23:37 */pub...原创 2020-06-28 23:57:17 · 509 阅读 · 0 评论 -
设计模式学习-原型模式
《西游记》相信大家都并不陌生,关于他(或它)拔毛变小猴的故事几乎人人皆知,孙悟空可以用猴毛根据自己的形象,复制(又称“克隆”或“拷贝”)出很多跟自己长得一模一样的“身外身”来。在设计模式中也存在一个类似的模式,可以通过一个原型对象克隆出多个一模一样的对象,该模式称之为原型模式。在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。试想,如果连孙悟空的模样都不知道,怎么拔毛变小猴子呢?原型模式的定义如下:原型模式(PrototypePattern):使用原型..原创 2020-06-12 23:45:36 · 184 阅读 · 0 评论 -
设计模式学习-策略模式
商场促销打折场景下,使用策略模式实现计算最终支付金额收费基类:package com.zawl.designpattern.strategy;import java.math.BigDecimal;/** * @Description 收费基类 * @Author xiayunan <luomuqintian@163.com> * @Version V1.0.0...原创 2019-11-16 08:18:46 · 130 阅读 · 0 评论 -
设计模式学习-简单工厂模式
以计算器运算为例,演示简单工厂模式的应用UML类图:运算基类:package com.zawl.designpattern.simplefactory;import java.math.BigDecimal;/** * @Description 运算基类 * @Author xiayunan <luomuqintian@163.com> * @Ve...原创 2019-11-15 23:29:40 · 131 阅读 · 0 评论 -
Java反射机制与工厂模式
工厂模式简介工厂模式是最常用的实例化对象模式。工厂模式的主要作用就是使用工厂方法代替new操作。为什么要使用工厂模式?直接new不好吗?直接new没有什么不好,只是工厂模式可以给系统带来更好的可扩展性和尽量少的修改量。分类工厂模式一般有两类,一类是工厂方法模式,另一类是抽象工厂模式。但是《head first 设计模式》中,通过某些例子,实际上把工厂模式分为三种:转载 2017-11-27 14:45:24 · 313 阅读 · 0 评论 -
Java设计模式常见使用场景
一、Java I/O中的设计模式1、适配器模式适配器模式就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作。通常被用在一个项目需要引用一些开源框架来一起工作时,这些框架的内部都有一些关于环境信息的接口,需要从外部引入,但是外部的接口不一定能匹配,在这种情况下,就需要适配器模式来转换接口。Java的I/O类库中有许多这样的需求,如将字符...转载 2018-05-09 16:07:16 · 32444 阅读 · 1 评论 -
java设计模式之策略模式
《JAVA与模式》之策略模式(转载自http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html)在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算...转载 2018-06-29 12:54:13 · 183 阅读 · 0 评论 -
Java设计模式-工厂模式(Spring web 为例)
一般而言,工厂模式分为3种,简单工厂模式,工厂方法模式,抽象工厂模式。这三种工厂模式逐层深入吧。一,从springWeb.jar包使用抽象工厂模式的一个例子聊起之前对spring各种痴迷,所以在需要发送http请求时,用了spring自带的http客户端,上代码:import java.io.InputStream;import java.net.URI;import java.nio.cha...转载 2018-06-29 14:43:43 · 814 阅读 · 0 评论 -
java设计模式之工厂方法
一、概述定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。二、适用性 1.当一个类不知道它所必须创建的对象的类的时候。 2.当一个类希望由它的子类来指定它所创建的对象的时候。 3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。三、参与者Factor...原创 2018-06-29 15:43:14 · 207 阅读 · 0 评论 -
Java实际项目运用之策略模式
1. 策略模式概要策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构。策略模式这个模式涉及到三个角色:● 环境(Context)角色...原创 2019-01-03 16:42:37 · 1510 阅读 · 0 评论 -
简单工厂、工厂方法、抽象工厂之小结、区别
很多时候,我发现这三种设计模式难以区分,常常会张冠李戴闹了笑话。很有必要深入总结一下三种设计模式的特点、相同之处和不同之处。1 本质 三个设计模式名字中都含有“工厂”二字,其含义是使用工厂(一个或一系列方法)去生产产品(一个或一系列类的实例)。 另外,有时候,我们常常会将生产产品的一个或一系列方法封装到一个类中,我习惯把这个类叫做“工厂类”;而被实例化的类称作“产品类”。2 简...转载 2019-02-15 16:05:25 · 221 阅读 · 0 评论 -
java设计模式之单例模式
本文继续介绍23种设计模式系列之单例模式。概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整转载 2015-09-05 10:29:06 · 547 阅读 · 0 评论