
设计模式
文章平均质量分 89
jack xu1
stay hungry,stay foolish..
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多重校验神器责任链模式
背景最近在做需求,写一个方法,先在前面做验证,if不满足A条件则return,if不满足B条件则return…一共写了5个验证,等验证通过以后才执行下面的逻辑,这个也没问题。过了一阵产品提了需求,跟这个方法类似,我又把这个方法copy了一份,只不过验证条件稍微有点不一样,要变成6个验证了。这时候我就发现有三个问题,第一重复代码,相同的A条件B条件C条件写了两份,没有复用。第二,“头重脚轻”,比如100行的方法,前面60行都是验证,后面40行才是真正有用的业务代码,你看一个方法功能的时候前面验证肯定是不关原创 2021-09-24 21:20:51 · 822 阅读 · 0 评论 -
万丈高楼平地起的建造者模式
定义建造者模式(Builder Pattern)是将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型模式。使用建造者模式对于用户而言只需指定需要建造的类型就可以获得对象,建造过程及细节不需要了解。建造者模式适用于创建对象需要很多步骤,但是步骤的顺序不一定固定。如果一个对象有非常复杂的内部结构(很多属性),可以将复杂对象的创建和使用进行分离。组装电脑一般建造者模式是搭配着链式编程一起写的,所以这里不介绍传统的写法,直接介绍链式写法。这里以组装电脑为例,新建一个Co原创 2021-09-11 21:22:33 · 144 阅读 · 0 评论 -
手写JdbcTemplate的模板方法模式
模板方法模式模板方法模式(Template Method Pattern)又叫模板模式,是指定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤,属于行为型设计模式。模板方法模式实际上是封装了一个固定流程,该流程由几个步骤组成,具体步骤可以由子类进行不同的实现,从而让固定的流程产生不同的结果。模板方法的本质就是抽象封装流程,然后进行类的继承实现。通用UML类图举例说明我们平时在家自己做饭, (1)买菜,(2)洗菜, (3)做菜,(4)吃原创 2021-09-06 22:44:16 · 605 阅读 · 0 评论 -
帮我们找房租房买房的代理模式
前言大家好,看到这个标题大家应该想到了是中介,中介可以帮我们租房找房买房办手续等等,让我们在整个租房买房过程中轻松很多。生活中还有售票黄牛、婚介、经纪人、快递、事务代理、非侵入式日志监听等,都是代理模式的实际体现。代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型模式。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。通用UML类图:使用代理模式主要有两个目的:一是保护目标对象,二是增强目标原创 2021-03-12 22:02:47 · 287 阅读 · 0 评论 -
手抓饼加生菜加鸡蛋的装饰器模式
装饰器模式装饰器模式(Decorator Patter),也称为包装模式(Wrapper Pattern)是指在不改变原有对象的基础之上,将功能附加在对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。装饰器模式的核心是功能扩展。使用装饰器可以透明且动态地扩展类的功能。下面是通用的UML类图:生活中的应用场景看完上面的概念以及类图可能比较抽象,接下来我会举一个生活中的场景,来通俗易懂的讲解装饰器模式。我们在早上上班途中,往往会在公司门口买一个手抓饼,然后带到工位上慢慢原创 2021-02-24 22:10:44 · 364 阅读 · 0 评论 -
简单的单例模式其实不简单
小伙们好,我是jack xu,今天跟大家讲一个老生常谈的话题,单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。网上的文章也很多,但是参差不齐,良莠不齐,要么说的不到点子上,要么写的不完整,我试图写一篇史上最全单例模式,让你看一篇文章就够了。。单例模式定义及应用场景单例模式是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。许多时候...原创 2020-04-25 14:30:22 · 291 阅读 · 0 评论