随笔分类 -  设计模式

摘要:已经来到了责任链模式,各位客官听我瞎扯...... 责任链模式是什么 责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以 阅读全文 »
posted @ 2022-02-16 09:02 第十六封 阅读(427) 评论(0) 推荐(0) 编辑
摘要:开局还是那种图,各位客官往下看... 张无忌学太极拳,忘记了所有招式,打倒了"玄冥二老",所谓"心中无招"。设计模式可谓招数,如果先学通了各种模式,又忘掉了所有模式而随心所欲,可谓OO之最高境界。 命令模式是什么? 在面向对象程式设计的范畴中,命令模式(Command Pattern)是一种设计模式 阅读全文 »
posted @ 2022-02-11 09:01 第十六封 阅读(122) 评论(0) 推荐(0) 编辑
摘要:开局还是那种图,各位客官往下看... 张无忌学太极拳,忘记了所有招式,打倒了"玄冥二老",所谓"心中无招"。设计模式可谓招数,如果先学通了各种模式,又忘掉了所有模式而随心所欲,可谓OO之最高境界。 模板模式是什么? 模板模式,同样是一种行为型模式,也就是关于对象做什么或者怎么做的设计模式。模板模式的 阅读全文 »
posted @ 2022-02-10 08:29 第十六封 阅读(222) 评论(0) 推荐(1) 编辑
摘要:开局还是那种图,最近策略模式貌似很火,各位客官往下看... 策略模式到底是什么? 前面我们其实已经将结构型模式讲解完了,剩下的全都是行为型模式,三种模式的区分: 创建型模式:如何创建一个对象 结构型模式:对象内部的构造是如何构造的 行为型模式:对象是如何运行(可以做什么) 而提到策略模式,我们该如何 阅读全文 »
posted @ 2022-01-23 21:52 第十六封 阅读(410) 评论(0) 推荐(2) 编辑
摘要:开局还是那种图,各位客官往下看... 组合模式是什么? 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构。(百度百科) 其实,组合模式,又称为部分整体模式,用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式, 阅读全文 »
posted @ 2022-01-19 08:50 第十六封 阅读(361) 评论(2) 推荐(0) 编辑
摘要:设计模式系列:http://aphysia.cn/categories/designpattern 开局还是那种图,各位客官往下看... 享元模式是什么? 享元模式(FlyWeight),是结构型模式的一种,主要是为了减少创建对象的数量,减少内存占用以及提高性能。说到这里,不知道你是否会想到池技术, 阅读全文 »
posted @ 2022-01-09 15:24 第十六封 阅读(232) 评论(0) 推荐(0) 编辑
摘要:开局一张图,剩下全靠写... 外观模式是什么 外观模式,其实是用来隐藏系统的复杂性的,屏蔽掉了背后复杂的逻辑,向用户提供简单的可以访问系统的接口,也是属于结构型模式的一种 。 举个例子,比如我们的Java 三层MVC架构,对外提供的是controller,但是controller内部可能调用了很多s 阅读全文 »
posted @ 2022-01-07 08:41 第十六封 阅读(183) 评论(0) 推荐(0) 编辑
摘要:装饰器模式 前面学习了好几种设计模式,今天继续... 装饰器模式,属于结构型模式,用来包裹封装现在的类对象,希望可以在不修改现在类对象和类定义的前提下,能够拓展对象的功能。 调用的时候,使用的是装饰后的对象,而不是原对象。,提供了额外的功能。 不知道大家有没有看手工耿的自制钢琴烤串车视频【https 阅读全文 »
posted @ 2022-01-06 08:44 第十六封 阅读(117) 评论(0) 推荐(0) 编辑
摘要:设计模式,写代码必备神器... 桥接模式是什么? 桥接模式是把抽象化和实现化解耦,让两者可以独立,该设计模式属于结构性设计模式。何为将抽象化和实现化解耦,可以理解为将功能点抽象出来,功能的实现如何取决于不同的需求,但是抽象的功能点(接口)已经被桥接到原本的类型上,只用关注与实现。原本的类型变化,和抽 阅读全文 »
posted @ 2022-01-05 08:25 第十六封 阅读(98) 评论(0) 推荐(0) 编辑
摘要:这里说的适配器不是通常所说的类适配器,对象适配器,接口适配器,这里实现的是把所有的类进行统一管理的适配器。如需要查找设计模式的三种主要适配器模式,请点击https://blog.csdn.net/Aphysia/article/details/80291916 适配器模式(百度百科):在计算机编程中 阅读全文 »
posted @ 2021-12-14 08:56 第十六封 阅读(370) 评论(0) 推荐(1) 编辑
摘要:设计模式文章集合:http://aphysia.cn/categories/designpattern 开局一张图,剩下全靠写... 介绍 适配器模式(百度百科):在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作 阅读全文 »
posted @ 2021-12-14 08:47 第十六封 阅读(96) 评论(0) 推荐(1) 编辑
摘要:开局一张图,剩下全靠写... 设计模式文章集合:http://aphysia.cn/categories/designpattern 前言 接触过 Spring 或者 Springboot 的同学或许都了解, Bean 默认是单例的,也就是全局共用同一个对象,不会因为请求不同,使用不同的对象,这里我 阅读全文 »
posted @ 2021-12-11 10:08 第十六封 阅读(78) 评论(0) 推荐(0) 编辑
摘要:开局一张图,剩下全靠写... 引言 设计模式集合:http://aphysia.cn/categories/designpattern 如果你用过 Mybatis ,相信你对以下代码的写法并不陌生,先创建一个builder对象,然后再调用.build()函数: InputStream is = Re 阅读全文 »
posted @ 2021-12-02 09:07 第十六封 阅读(371) 评论(0) 推荐(2) 编辑
摘要:cglib 动态代理 cglib介绍 CGLIB 是一个开源项目,一个强大高性能高质量的代码生成库,可以在运行期拓展 Java 类,实现 Java 接口等等。底层是使用一个小而快的字节码处理框架 ASM,从而转换字节码和生成新的类。 理论上我们也可以直接用 ASM 来直接生成代码,但是要求我们对 J 阅读全文 »
posted @ 2021-11-08 22:43 第十六封 阅读(147) 评论(0) 推荐(0) 编辑
摘要:前面文章有说到代理模式:http://aphysia.cn/archives/dynamicagentdesignpattern 那么回顾一下,代理模式怎么来的?假设有个需求: 在系统中所有的 controller 类调用方法之前以及之后,打印一下日志。 假设原来的代码: public class 阅读全文 »
posted @ 2021-11-06 21:09 第十六封 阅读(108) 评论(0) 推荐(0) 编辑
摘要:代理模式:为其他对象提供一种代理以控制对这个对象的访问,在某种情况下,一个对象不适合或者不能够直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。 可以这么理解:使用代理对象,是为了在不修改目标对象的基础上,增强主业务的逻辑。就相当于某个普通人(目标对象),他现在需要打官司,那么 阅读全文 »
posted @ 2021-03-03 00:09 第十六封 阅读(119) 评论(0) 推荐(0) 编辑
摘要:还记得之前的工厂方法模式么?现在老板更加富有了,除了水果,还准备搞点其他的生意,再做点服装生意。水果工厂和服装工厂明显就不是同一种东西,肯定不能放到一个工厂里面生产,服装也有好几种,但是不同的工厂,也是老板自己的,老板希望能够把握大局,所以不同工厂,肯定是有同一个特征的,也就是他们都是工厂,并且都是 阅读全文 »
posted @ 2021-02-24 01:10 第十六封 阅读(105) 评论(0) 推荐(0) 编辑
摘要:还记得前面的简单工厂模式么?我们开了一个水果工厂FruitFactory,生产三种水果Apple,Pear,Orange。今天给大家讲讲工厂方法模式: 老板搞水果工厂赚了点小钱,准备扩大生产,每个工厂生产一种水果,各司其职,而不是把所有的产品类型都放到一个工厂中。 既然有多工厂,那我们和之前一样,搞 阅读全文 »
posted @ 2021-01-23 15:25 第十六封 阅读(140) 评论(0) 推荐(0) 编辑
摘要:1.简单工厂模式介绍 工厂模式,比较常用,属于创建型模式,也就是主要是用来创建对象的。工厂模式,有三种,主要分为: 简单工厂模式 工厂方法模式 抽象工厂模式 其中,本文要讲的就是,简单工厂模式,但是简单工厂模式,并不是属于GoF讲的23种设计模式中。简单工厂模式,也叫静态工厂方法模式。简单而言,就是 阅读全文 »
posted @ 2020-12-26 21:52 第十六封 阅读(124) 评论(0) 推荐(0) 编辑
摘要:我们都知道,饿汉式单例是线程安全的,也就是不会初始化的时候创建出两个对象来,但是为什么呢? 首先定义一个饿汉式单例如下: public class Singleton { // 私有化构造方法,以防止外界使用该构造方法创建新的实例 private Singleton(){ } // 默认是publi 阅读全文 »
posted @ 2020-12-26 21:50 第十六封 阅读(479) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示