![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 87
Tyongg
我一定要进大厂,一定能成为大牛!
展开
-
设计模式——适配器模式
设计模式——适配器模式文章目录设计模式——适配器模式基本介绍问题引入类适配器模式UML代码创建测试细节和注意事项对象适配器基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper);适配器模式属于结构型模式;主要分为三类:类适配器模式、对象适配器模式、接口适配器模式;问题引入以生活中充电器的例子来讲解适配器,充电器本身相当于Adapter,220V原创 2021-06-04 23:43:23 · 101 阅读 · 0 评论 -
设计模式——模板方法模式
设计模式——模板方法模式这篇博文通过学习尚硅谷韩顺平老师《设计模式》课程所做,在此非常感谢!文章目录设计模式——模板方法模式概述问题引入代码实现UML编码测试概述基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行;简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结原创 2021-06-13 08:35:02 · 103 阅读 · 0 评论 -
设计模式——单例模式
设计模式——单例模式文章目录设计模式——单例模式概念饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,改进第四种方式),注意该方式改进是失败的双重检查方式静态内部类方式枚举的方式概念基本介绍所谓单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法);八种写法的单例模式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒原创 2021-06-13 07:59:26 · 112 阅读 · 0 评论 -
设计模式——外观模式
设计模式——外观模式文章目录设计模式——外观模式概述问题引入编码实现UML编码测试概述基本介绍外观模式(Facade),也叫“过程模式\门面模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;*外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节;细节和注意事项模式对外屏蔽了子系统的细节,因此外观模式降低了客户端对子系统使用的复杂性;外观模式对客户端与子原创 2021-06-12 08:09:19 · 152 阅读 · 3 评论 -
设计模式——解释器模式
设计模式——解释器模式文章目录设计模式——解释器模式概述问题引入编码实现UML编码测试概述基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器;解释器模式(Interpreter Pattern):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器, 使用该解释器来解释语言中的句子(表达式)可以应用在将一个需要解释执行的语言中的句子表示为一个原创 2021-06-12 07:26:56 · 87 阅读 · 1 评论 -
设计模式——迭代器模式
设计模式——迭代器模式文章目录设计模式——迭代器模式概述问题引入编码实现UML编码测试概述基本介绍迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式;如果我们的集合元素是用不同的方式实现的,有数组,还有 Java的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决;迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结原创 2021-06-11 07:46:25 · 108 阅读 · 0 评论 -
设计模式——策略模式
设计模式——策略模式本片博文学习尚硅谷韩老师《设计模式》课程所做,在此非常感谢!文章目录设计模式——策略模式概述问题引入编码实现UML编码测试概述策略模式的基本介绍策略模式(Strategy Pattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户;这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略);注意原创 2021-06-10 23:26:26 · 278 阅读 · 1 评论 -
设计模式——桥接模式
设计模式——桥接模式本篇博文通过学习尚硅谷韩老师《设计模式》课程所总结,在此非常感谢文章目录设计模式——桥接模式概述问题引入编码实现UML实现测试概述桥接模式的基本介绍桥接模式(Bridge 模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变;桥接模式是一种结构型设计模式Bridge 模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责;桥接模式的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从原创 2021-06-10 22:00:47 · 187 阅读 · 0 评论 -
设计模式——享元模式
设计模式——享元模式本篇博文通过尚硅谷韩老师《设计模式》课程所做,在此非常感谢!文章目录设计模式——享元模式问题引入基本介绍UML编码运行测试问题引入如果我们此时有开发一个用来装饰用户产品的网站,供多个用户使用,基本的需求基本一样,但是要求都有些不同,如下:有客户要求以新闻的形式发布;有客户要求以博客的形式发布;有客户希望以微信公众号的形式发布;…对此,我们采用享元模式;基本介绍享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对原创 2021-05-29 21:28:52 · 73 阅读 · 0 评论 -
设计模式——状态模式
设计模式——状态模式本篇博文通过尚硅谷韩老师《设计模式》课程所做,在此非常感谢!文章目录设计模式——状态模式基本介绍UML问题引入编码实现测试基本介绍状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换;当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类状态模式的细节和注意事项代码有很强的可读性。状态模式将每个状态的行为封装到对应的一个类中;方便维护。将容易产生问题的原创 2021-05-26 18:22:38 · 89 阅读 · 0 评论 -
设计模式——装饰者模式
装饰者模式本篇博文通过尚硅谷韩老师《设计模式》课程所做,在此非常感谢!文章目录装饰者模式基本介绍UML问题引入编码测试基本介绍装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp);这里提到的动态的将新功能附加到对象和 ocp 原则,在后面的应用实例上会以代码的形式体现装饰者模式原理:装饰者模式就像打包一个快递1、Component,主体:比如类似前面的Drink、陶瓷、衣服 (Component),即被装饰者2、Concret原创 2021-05-25 11:07:38 · 114 阅读 · 0 评论 -
设计模式——组合模式
设计模式——组合模式本片博文通过尚硅谷韩老师课程所讲的《设计模式课程》做出的笔记,在此非常感谢!文章目录设计模式——组合模式基本介绍UML问题引入编码实现测试基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系;组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式;组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象原创 2021-05-24 20:02:45 · 58 阅读 · 0 评论 -
设计模式——建造者模式
设计模式——建造者模式本片博文通过尚硅谷韩老师《设计模式》课程所做,再次非常感谢!文章目录设计模式——建造者模式基本介绍细节和注意事项UML问题引入建造者模式及其编码测试基本介绍建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们, 用户不需要知道内部的具体构建细原创 2021-05-23 20:10:18 · 119 阅读 · 0 评论 -
设计模式——命令模式
设计模式——命令模式基本介绍:命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计;命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦;在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作;通俗易懂的理解:将军发布命令,原创 2021-05-17 20:52:38 · 82 阅读 · 0 评论 -
设计模式——工厂模式
设计模式——工厂模式本篇博文通过学习尚硅谷设计模式课程所做的总结,在此表示感谢!文章目录设计模式——工厂模式简单工厂模式UML编码实现制作披萨类的构建简单工厂类的创建测试工厂方法模式UML编码实现工厂方法模式的核心测试抽象工厂模式UML编码实现抽象工厂模式的核心测试工厂模式的小结这篇文章通过一个披萨订购的问题来分别引出:简单工厂模式、工厂方法模式、抽象工厂模式;看一个项目需求:有一个披萨的项目:要便于披萨种类的扩展,要便于维护,披萨的种类很多(比如 GreekPizz、CheesePizz原创 2021-05-16 12:25:08 · 71 阅读 · 1 评论 -
设计模式——访问者模式
设计模式——访问者模式这篇博文是通过尚硅谷韩老师设计模式课程所总结,在此表示感谢!文章目录设计模式——访问者模式问题引入UML编码实现Person类(相当于上面UML的Element)的编写具体的Person类编写Action类(相当于上面UML的Visitor)的创建具体Action类的编写ObjectStruct类的编写测试类Client的编写测试*基本介绍:*访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元原创 2021-05-15 08:02:48 · 68 阅读 · 0 评论 -
设计模式——观察者模式
观察者模式这篇博文是根据B站尚硅谷设计模式课程韩老师所讲而做的,在此表示感谢!文章目录观察者模式案例介绍UML编码编写观察者的接口类编写管理观察者的接口编写能够测量、修改天气数据的类编写"第三方的接口“编写测试类测试观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为 Subject,依赖的对象为 Observer,Subject通知 Observer 变化,比如奶站\气象局\报社等就类似于 Subject,Subject是 1 的一方,Observer是用户是多的一方;基本介绍:观察者原创 2021-05-13 07:53:14 · 118 阅读 · 0 评论 -
设计模式——代理模式
这篇博文通过Java来认识23种设计模式中的代理模式代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能;被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象;代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK 代理、接口代理)和 Cglib 代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) ;静态代原创 2021-05-11 15:54:32 · 63 阅读 · 0 评论 -
设计模式——职责链模式
设计模式——职责链模式这篇博文是根据尚硅谷韩老师的设计模式课程做出的总结,在此非常感谢!文章目录设计模式——职责链模式问题引出UML编码实现编写请求类PurchaseRequest编写请求处理类的基类Approver请求处理类DepartmentApprover请求处理类CollegeApprover请求处理类ViceSchoolMasterApprover请求处理类SchoolMasterApprover测试类Client测试*基本介绍:*职责链模式(Chain of Responsibilit原创 2021-05-14 21:42:36 · 88 阅读 · 0 评论