![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java设计模式
文章平均质量分 94
小王子爱上玫瑰
这个作者很懒,什么都没留下…
展开
-
Java设计模式-模板方法模式
文章目录一、简介1.1 引入1.2 定义二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景六、与其他模式的关系一、简介1.1 引入在生活中,有很多事情我们需要按照确定的步骤去执行,但某些步骤的具体内容可能并不一样比如:去银行办理业务流程,一般要经过:取号-排队-办理相关业务三个流程。但办理相关业务并不确定,可能是存款、取钱、转账、挂失等等银行办理业务的流程就像是一个被封装好的模板,每个客户都会按照这个原创 2021-02-18 14:40:58 · 157 阅读 · 0 评论 -
Java设计模式-享元模式
文章目录一、简介1.1 引入1.2 定义外部状态和内部状态二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景六、与其他模式的关系一、简介1.1 引入一个类中的成员变量表明这个类所创建的对象具有的属性,而我们可能会使用程序的中某一个类创建多个对象,你们这些对象之间可能会存在一部分属性值是完全相同的。现在我们创建一个Car类,然后用这个类创建carA和carB两辆同型号的轿车他们的长宽高相同,但颜色和功率不同原创 2021-02-17 17:23:41 · 174 阅读 · 1 评论 -
Java设计模式-外观模式
文章目录一、简介1.1 引入1.2 定义二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景一、简介1.1 引入在寒假结束以后,开学第一天,数学老师进门说:“你们把寒假作业交上来”,每个人独自来我办公室交作业。于是,同学陆续前往办公室交作业,一下子,办公室被围得水泄不通。语文老师听说了数学老师的"事迹",让语文课代表把所有同学的寒假作业收齐以后,统一送到语文老师的办公室。我们能够看到,语文老师办法显然原创 2021-02-16 14:38:48 · 81 阅读 · 0 评论 -
Java设计模式-组合模式
文章目录一、简介1.1 引入1.2 定义二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景一、简介1.1 引入在现实生活中,存在很多"部分-整体"的关系,他们通常都可以用树形结构来表示。比如:大学中的学院与系、军队中的军士结构、公司中的部门分级情况还有文件系统中的文件与文件夹。我们可以将系统中的一个文件夹看成一个容器对象,它包含了多个文件和文件夹,子文件夹中又可以包含多个文件和文件夹。而文件夹(容器对象原创 2021-02-15 14:45:59 · 233 阅读 · 3 评论 -
Java设计模式-装饰者模式
文章目录一、简介1.1 引入1.2 定义二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景一、简介1.1 引入在许多设计当中,我们可能需要对一个类创建的某个对象进行改进,而不是改进这个类创建的全部对象。比如:一个摩卡咖啡类(Mocha),我们用摩卡咖啡类创建4杯咖啡,2杯咖啡什么都不加,一杯咖啡加牛奶,一杯咖啡加糖,我们应当怎么做?我们不可能修改摩卡咖啡类(Mocha),因为这样做我们得到的全部对象,依然只原创 2021-02-14 14:48:32 · 161 阅读 · 0 评论 -
Java设计模式-桥接模式
文章目录一、简介1.1 问题引入1.2 定义二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景一、简介1.1 问题引入假如我们有一个几何类,从它扩展出两个子类:圆形和方形,现在我们需要为这些几何子类添加颜色,所以需要为圆形类和方形类都添加红色和蓝色的颜色子类。当我们添加一个三角形类时,就需要为三角形类添加所有已存在的颜色子类。假设我们已经有了多个颜色子类,现在需要添加一个新的的形状,那么就需要为这个新的形原创 2021-02-13 10:32:37 · 118 阅读 · 0 评论 -
Java设计模式-适配器模式
文章目录一、简介1.1 引入1.2 定义1.3 模式组成二、适配器模式分类2.1 类适配器2.2 对象适配器2.3 接口适配器三、实例3.1 实例3.2 步骤3.3 UML类图3.4 对象适配器解题的UML类图四、优缺点4.1 优点4.2 缺点五、应用场景一、简介1.1 引入我国的家庭用电是220v,但我们不能直接用220v的电压来给手机充电,而是通过变压器降压,而手机充电器就充当变压器的功能,它实现了220v到5v电压的转变(假定手机充电器的输出电压为5v),这里手机充电器就相当于一个电源适配器原创 2021-02-10 14:49:45 · 165 阅读 · 1 评论 -
Java设计模式-建造者模式(生成器模式)
文章目录一、简介1.1 引入1.2 定义1.3 建造者模式和工厂模式的区别二、模式原理2.1 模式组成2.2 UML类图2.3 组成代码三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景一、简介1.1 引入在现实世界中,一个对象往往是由多个对象或多个步骤去完成,比如:购买披萨的过程,在购买披萨的过程中可能会有不同的流程首先将披萨制作完成,然后把大块披萨切成小块,最后打包首先将披萨制作完成,然后先打包,回家后自己切披萨首先将披萨制作完成,如果是小原创 2021-02-09 14:46:19 · 191 阅读 · 0 评论 -
Java设计模式-原型模式
文章目录一、简介1.1 定义1.2 clone方法和Cloneable接口clone()方法Cloneable接口1.3 浅拷贝和深拷贝浅拷贝(浅复制、浅克隆)深拷贝(深复制、深克隆)1.4 利用序列化实现深拷贝二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例代码3.2 UML类图四、优缺点4.1 优点4.2 缺点一、简介1.1 定义定义:原型(Prototype)模式属于创建者模式。通过创建一个实例作为原型,并且通过复制这些原型来创建新的对象。原型对象需要提供一个方法(实现cl原创 2021-02-08 13:55:53 · 86 阅读 · 1 评论 -
Java设计模式-抽象工厂模式
文章目录一、简介1.1 引入1.2 定义1.3 抽象工厂模式与工厂方法模式的区别二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景六、模式的扩展6.1 "开闭原则"的倾斜性6.2 工厂模式的退化一、简介1.1 引入为了更清晰地理解工厂方法模式,首先引入两个概念产品等级结构:产品等级结构表示产品的继承结构,同一产品等级表示的是同一类型的东西。如一个抽象类是手机,其子类有华为手机、小米手机。那么抽象父类手机原创 2021-02-07 11:15:46 · 179 阅读 · 0 评论 -
Java设计模式-工厂方法模式
文章目录一、简介二、模式原理2.1 模式组成2.2 UML类图三、实例3.1 实例概况3.2 步骤3.3 UML类图四、优缺点4.1 优点4.2 缺点五、应用场景一、简介工厂方法模式(Factory Method Pattern):又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象工厂方法模式将产品类的原创 2021-02-06 11:57:27 · 131 阅读 · 0 评论 -
Java设计模式-简单工厂模式
目录一、简介二、模式原理2.1模式组成2.2UML类图三、实例3.1实例概况3.2使用步骤四、优缺点4.1 优点4.2缺点五、应用场景一、简介简单工厂模式(Simple Factory Pattern):属于创建型模式,又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类(SimpleFactory工厂类)来负责创建其他类的实例,被创建的实例通常都具有共同的抽象父类。 简...原创 2021-02-05 11:52:55 · 122 阅读 · 0 评论 -
Java设计模式-单例模式
文章目录一、单例模式的定义与特点1.1单例模式的定义1.2 单例模式的特点二、单例模式的总体步骤:三、单例模式的分类3.1 饿汉式3.1.1 饿汉式(静态常量)3.1.2 饿汉式(静态代码块)3.2 懒汉式3.2.1 懒汉式(线程不安全)3.2.2 懒汉式(线程安全,同步方法)3.2.3 懒汉式(线程不安全,同步代码块)3.3 双重检查3.4 静态内部类3.5枚举3.6 模式的推荐使用四、单例模式的优点和缺点4.1 单例模式的优点:4.2单例模式的缺点:五、单例模式的应用场景一、单例模式的定义与特点1.原创 2021-02-04 11:18:25 · 60 阅读 · 0 评论