![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 93
设计模式总结
Xiu Yan
北漂程序员一枚,目前就职华为。
展开
-
类与类之间的六种关系
类与类之间的六种关系一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。二、实现关系 实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。在Java中此类关系通过关键字implements明原创 2020-12-27 15:30:47 · 13330 阅读 · 0 评论 -
软件设计模式 | 创建型之工厂模式(3种工厂)
软件设计模式之工厂模式 工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊。1. 简单工厂模式 该模式对对象创建管理方式最为简单,因为其仅仅简单的对不同类对象的创建进行了一层薄薄的封装。该模式通过向工厂传递类型来指定要创建的对象,其UML类图如下:下面我们使用手机生产来讲解该模式:P原创 2020-12-27 22:11:26 · 267 阅读 · 0 评论 -
软件设计模式 | 结构型之组合模式(安全方式与透明方式)
组合模式 图中的文件结构可以称之为树形结构,在数据结构中我们可以通过调用某个方法来遍历整棵树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。我们可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以是叶子对象。但是由于容器对象和叶子对象在功能上面的区别,使得我们在使用的过程中必须要区分容器对象和叶子对象,但是这样就会给客户带来不必要的麻烦,作为客户而已,它始终希望能够一致的对待容器对象和叶子对象。 组合模式的设计动机:组合模式定义了如何将容器对原创 2021-01-04 02:50:59 · 1649 阅读 · 1 评论 -
软件设计模式 | 结构型之适配器模式(类适配器与对象适配器)
一、 模式介绍 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能,使得原本由于接口不兼容而不能在一起工作的类可以在一起工作。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。二、模式结构模式结构应从 类适配器 与 对象适配器 进行区分:2.1 类适配器原创 2021-01-04 16:52:39 · 1183 阅读 · 1 评论 -
软件设计模式 | 结构型之装饰者模式详解
装饰者模式的引入模式引入的参考故事:https://www.cnblogs.com/of-fanruice/p/11565679.html装饰者模式一、模式介绍 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。二、模式实现以摩卡原创 2021-01-04 23:58:48 · 557 阅读 · 0 评论 -
软件设计模式 | 结构型之桥接模式详解
桥接模式引述 我们先举一个生活中的小例子,比如:画图。 这里有一个画笔, 可以画三种图形分别是:正方形,三角形,圆形。然后还需要给这些形状上色,这里有红、黄、蓝三种颜色。那么我们可以有 3*3 一共 9 种组合。这里呢,存在两种解决方案: 1. 方案一:为每种形状都提供各种颜色的版本。 2. 方案二:根据实际需要对颜色和形状进行组合。如果采用方案一来实现,那么实现效果如图所示: 形状与颜色少的情况下完全可以的,我们可以理解成每一种颜色都提供了各种形状的版本。那么假如要增加一个原创 2021-01-05 18:26:16 · 972 阅读 · 2 评论 -
软件设计模式 | 动态代理模式
一、动态代理概述1.1 代理的概述和作用1.2 动态代理的优点1.3 代理对象的创建1.4 代理对象调用方法的执行流程二、动态代理举例2.1 歌手经纪人2.2 业务功能的性能统计2.3 动态代理在 Spring 框架中的应用原创 2023-04-10 17:38:17 · 585 阅读 · 0 评论 -
Java 基础进阶篇(一):static 静态关键字与单例模式
一、static 静态关键字1.1 静态成员变量与实例成员变量1.2 静态成员方法与实例成员方法1.3 static 访问注意事项1.4 内存使用情况二、工具类三、代码块四、单例模式4.1 饿汉单例4.2 懒汉单例原创 2023-04-30 23:00:37 · 3628 阅读 · 2 评论 -
Java 基础进阶篇(四):抽象类与模板方法设计模式
一、抽象类、抽象方法概述 二、抽象类的特征 三、模板方法设计模式 3.1使用场景 3.2 实现步骤 3.3 写作文案例 补充:final 和 abstract 是什么关系?原创 2023-05-01 13:54:51 · 1999 阅读 · 0 评论