
武侠论设计模式
文章平均质量分 80
以武侠的角度去理解设计模式
学习上的Monkey
这个作者很懒,什么都没留下…
展开
-
设计模式之职责链模式
这里写自定义目录标题官方定义通俗定义简单实现应用场景优点缺点官方定义将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求,将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。通俗定义说到底就是 多个处理器类对同一个接受对象进行处理。按照从上倒下依次去执行。比如在核酸检测期间,为了保证看病人员的中风险范围的筛选。医院会有一条通道,我们经过这条通道过程中,需要一层一层的扫码,只有通过最后一步检测的才能看病。并且如果我们需要多增加一条检测,只需要在同道中,原创 2022-02-18 17:14:56 · 225 阅读 · 0 评论 -
设计模式之内功心法 SOLID五大原则
内功心法前言意义五经单一原则开闭原则里式替换接口隔离依赖倒置前言随着计算机行业的不断发展,人们对于可以给予自身快速成长的技术非常的痴迷。就比如今天要聊的设计模式,学过编程的都知道设计模式,而很少有人会知道它的核心思想是什么,只是一味的照着网络上流行的设计模式 二十三式 依葫芦画瓢。仅做到了知其然而不知其所以然。所以今天来聊聊它出现的意义什么意义我们知道一个江湖的组成是非常不容易的,在江湖中也会有很多的门派与帮派,而门派一多就会有各式各样的问题,这时就出来了一个叫做设计模式的东西,来处理门派在发原创 2022-01-24 16:27:23 · 2150 阅读 · 0 评论 -
设计模式之基础 面向对象
面向对象前言封装性数据保护与信息隐藏如何设计一个类好的封装优点坏的封装缺点继承优点缺点多态抽象前言当我们提起面向对象的时候可能最快想到的是面向对象的几个特性吧,今天我们就重点来聊聊这些特性,因为在我们学习设计模式时,需要完全理解这四个特性。封装性对于封装我们可能常想到的就是将一段代码封装成一个方法然后再加几个参数,虽然我们经常这样,但是我想说的是这不是封装的真正含义;封装的真实的含义是数据保护以及信息隐藏。这句话的解读就是:不论方法或者类,只提供有限的参数,供外部进行访问与调用。把紧密的原创 2021-11-23 16:27:20 · 364 阅读 · 0 评论 -
设计模式常用模式之五 策略模式
策略模式官方定义实践场景为什么使用策略模式优点缺点UML类图实现方式解答衍生场景总结官方定义定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端(这里的客户端代指使用算法的代码)实践场景系统中需要动态切换几种算法的场景使用多重的条件选择语句来实现的业务场景只希望客户端选择已经封装好的算法场景而不用关心算法实现细节分离使用策略和创建策略的场景为什么使用策略模式为了提升代码的可维护性为了动态快速地替换更多的算法为了应对需原创 2021-11-20 16:10:14 · 87 阅读 · 0 评论 -
设计模式第一式 单例模式
单例模式-php官方的介绍单例模式的职责UML类图应用场景实现单例模式的方式优势劣势官方的介绍GOF的书中,单例模式最早的定义如下:单例模式属于创建型模式单例模式(Singleton) 允许存在一个或仅存在一个给定类的实例。它提供一种机制让任何实体都可以访问该实例。我的理解:单例模式类似于全局变量或全局函数的角色,可以使用它来代替全局变量。单例模式的职责保证一个类只有一个实例为该实例提供一个全局访问节点UML类图#mermaid-svg-NTjVqll6fF4uCsLe .l原创 2021-11-18 15:41:00 · 490 阅读 · 0 评论 -
设计模式之扩展- 论抽象工厂与工厂方法模式的不同
抽象工厂与工厂方法前情提要产品维度UML类图实现上的分别总结前情提要由于这几天一直在写关于工厂模式的文章,发现了一个问题,不大不小。在工厂方法模式与抽象工厂模式之间,似乎它俩之间的差别不是太大。所以特意开一篇文章讲讲它俩的区别。产品维度工厂方法模式:只围绕着一类接口来进行对象的创建与使用,使用场景单一和简单抽象工厂模式:提供了一个用于创建相关或相关对象族的接口。UML类图从UML类图 我们可以看到两种模式对应的抽象类型也是不一样的。工厂方法模式围绕着射击来进行对象的创建,而抽象模原创 2021-11-15 17:25:39 · 629 阅读 · 0 评论 -
设计模式之扩展式 抽象工厂模式
抽象工厂模式官方定义理解抽象工厂的角色现实中的例子程序的例子为什么要使用抽象工厂模式?优点缺点判断要不要创建对象的参考标准官方定义提供一个用于创建相关或相关对象族的接口,而无须指定其具体类。理解抽象工厂的角色抽象工厂抽象产品(通用的一类对象接口)具体工厂具体产品(继承通用对象或接口后扩展特有属性)现实中的例子比如说:抽象工厂生产的抽象产品是刀,枪,棍一类的武器,那具体工厂就可能在生产具体的武器:每个具体的工厂生产的具体的武器 可能在外观 威力,制作工艺上可能不一样。但是武原创 2021-11-15 14:58:53 · 372 阅读 · 0 评论 -
设计模式之八式之第八式 适配器模式
建造者模式原创 2021-11-09 19:18:11 · 496 阅读 · 0 评论 -
设计模式之八式之第七式 享元模式(结构型)
享元模式原创 2021-11-08 18:58:34 · 754 阅读 · 0 评论 -
设计模式常用八式之第六式 观察者模式(Observer)
观察者模式官方定义具体的叫法实践场景官方定义指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又被称为发布-订阅模式,它是对象行为型模式。以上定义包含了两个条件:一是被依赖的对象叫作被观察者,依赖的对象叫作观察者;二是观察者观察被观察者的状态变化具体的叫法发布者-订阅者生产者-消费者事件发布-事件监听实践场景当一个对象状态的改变需要改变其他对象时:比如下单成功时,需要通知统计,库存等模块改变对应的数量一个对原创 2021-11-06 17:28:25 · 358 阅读 · 0 评论 -
设计模式八式之第四式 模板模式 (行为型)
模板模式官方定义UML类图实现方式实践场景分析作用优点缺点总结官方定义模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。(算法可以理解为广义上的"业务逻辑",并不特指数据结构和算法中的"算法")。UML类图抽象父类:定义一个算法包含所有步骤,并提供一些通用的方法逻辑具体子类:继承自抽象父类,根据需要重写父类提供的算法步骤中的某些步骤实现方式定义了父类(龙门镖局总局) 定义了收货 收费原创 2021-11-03 18:00:25 · 93 阅读 · 0 评论 -
设计模式常用八式之第三式 门面模式/外观模式
简单工厂模式官方介绍 结构型通俗的理解实现方式使用场景实现操作注意官方介绍 结构型门面模式的原始定义是:为子系统中的一组接口提供统一的接口。它定义了一个更高级别的接口,使子系统更易于使用。(当我们需要使用更统一的标准方式来与系统交互时,就可以采用门面模式)门面模式的原理本质:简化外部系统使用内部多个子系统的使用方式。通俗的理解比如一位武林高手去武器店定制一把手枪,我们就只需要告诉掌柜我需要什么样的,预算多少钱,而掌柜只需要联系不同的生产厂商,交给他们去负责。他只负责最后交到武林高手手上就可以原创 2021-11-02 16:10:16 · 93 阅读 · 0 评论 -
设计模式八式之第二式 工厂方法模式(创建型)
工厂方法模式官方介绍UML类图工厂模式的职责优势官方介绍工厂模式数据创建型模式工厂模式在创建对象时不会对客户端暴露创建逻辑,并且是通过使用共同的接口指向新创建的对象工厂方法模式因为只围绕一类接口来进行对象的创建与使用,使用场景更简单和单一,在实际的项目中使用频率反而比抽象工厂模式更高。UML类图#mermaid-svg-iJePJK9ImrufBT6g .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--me原创 2021-11-02 14:59:10 · 236 阅读 · 0 评论