mumu_wangwei
祝愿看到内容的各位都能不放弃自己。也许美好就在下个路口,你只需要做的就是停下来多看看这个美好的世界。浮生墓,主修“红尘道”,让我们在红尘中修行而不忘初心。
展开
-
【DesignModel】职责链模式(Chain of Responsibility Pattern)
基本介绍职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式。...原创 2022-08-29 01:07:33 · 108 阅读 · 0 评论 -
【DesignModel】策略模式(Strategy Pattern)
策略模式(Strategy Pattern)中,定义 算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让 算法的变化独立于 使用算法的客户这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)。...原创 2022-08-29 01:04:37 · 153 阅读 · 0 评论 -
【DesignModel】状态模式(State Pattern)
基本介绍状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换当一个 对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。...原创 2022-08-29 01:02:05 · 109 阅读 · 0 评论 -
【DesignModel】解释器模式(Interpreter Pattern)
基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式(Interpreter Pattern): 是指给定一个语言( 表达式), 定义它的文法的一种表示,并 定义一个解释器,使用该 解释器来解释语言中的句子( 表达式)应用场景-应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树-一些重复出现的问题可以用一种简单的语言来表达。...原创 2022-08-29 00:59:18 · 87 阅读 · 0 评论 -
【DesignModel】备忘录模式(Memento Pattern)
基本介绍备忘录模式(Memento Pattern)在 不破坏封装性的前提下,捕获 一个对象的内部状态,并在该对象之外保存这个状态。这样以后就 可将该对象恢复到原先保存的状态可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作备忘录模式属于行为型模式。...原创 2022-08-29 00:56:37 · 81 阅读 · 0 评论 -
【DesignModel】中介者模式(Mediator Pattern)
基本介绍中介者模式(Mediator Pattern),用一个 中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其 耦合松散,而且可以独立地改变它们之间的交互中介者模式属于行为型模式,使代码易于维护比如 MVC 模式,C(Controller 控制器)是 M(Model 模型)和 V(View 视图)的中介者,在前后端交互时起到了中间人的作用。...原创 2022-08-29 00:53:49 · 76 阅读 · 0 评论 -
【DesignMode】观察者模式(Observer Pattern)
基础介绍,又叫,定义对象间一种一对多的依赖关系(注册),使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新(通知)。说白了就是个注册,通知的过程。原创 2022-08-29 00:51:01 · 87 阅读 · 0 评论 -
【DesignMode】迭代器模式(Iterator Pattern)
基本介绍迭代器模式(Iterator Pattern)是 常用的设计模式,属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式, 提供一种遍历集合元素的统一接口,用 一致的方法遍历集合元素,不需要知道 集合对象的底层表示,即:不暴露其内部的结构。...原创 2022-08-29 00:47:16 · 65 阅读 · 0 评论 -
【DesignMode】访问者模式(Visitor Pattern)
访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离,解决 数据结构和操作耦合性问题访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这些操作"污染"这些对象的类,可以选用访问者模式解决。...原创 2022-08-29 00:42:11 · 64 阅读 · 0 评论 -
【DesignMode】命令模式(Command Pattern)
命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计命名模式使得 请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。通俗易懂的理解:将军发布命令,士兵去执行。.........原创 2022-08-29 00:36:04 · 65 阅读 · 0 评论 -
【DesignMode】模板方法模式(Template method pattern)
基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤这种类型的设计模式属于行为型模式。编写制作豆浆的程序,说明如下:制作豆浆的流程 选材—>添加配料—>浸泡—>放到豆浆机打碎通过添加不同的原创 2022-07-06 22:29:27 · 75 阅读 · 0 评论 -
【DesignMode】代理模式(proxy pattern)
基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、理 动态代理 (JDK 代理、接口代理)和 Cglib 理 代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标原创 2022-07-06 22:25:51 · 54 阅读 · 0 评论 -
【DesignMode】享元模式(Flyweight Pattern)
基本介绍享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率享元模式经典的应用场景就是池技术了,String 常量池、数据库连接池、缓冲池等原创 2022-07-06 22:21:05 · 55 阅读 · 0 评论 -
【DesignMode】外观模式 (facade patterns)
基本介绍外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口 提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口,用 以屏蔽内部子系统的细节,使得 调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节组建一个家庭影院:DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为:直接用遥控器:统筹各设备开关开爆米花机放下屏幕开投影仪开音响开 DVD,选 dvd去拿爆米花调暗灯光播放观影结束后原创 2022-07-06 22:16:36 · 55 阅读 · 0 评论 -
【DesignMode】组合模式(composite mode)
基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图:将学院看做是学校的子类,系是学院的子类,原创 2022-07-05 00:10:14 · 107 阅读 · 0 评论 -
【DesignMode】装饰者模式(Decorator pattern)
基本介绍装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)这里提到的动态的将新功能附加到对象和 ocp 原则,在后面的应用实例上会以代码的形式体现,请同学们注意体会。咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)调料:Milk、Soy(豆浆)、Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用 OO 的来计算不同种类咖啡的费用:原创 2022-07-05 00:06:09 · 69 阅读 · 0 评论 -
【DesignMode】适配器模式(adapter pattern)
适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用了。适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可原创 2022-07-04 14:19:27 · 80 阅读 · 0 评论 -
【DesignMode】建造者模式(Builder model)
基本介绍建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.请编写程序,完成需求.类图:代码:3. 传统方式原创 2022-07-02 03:02:57 · 131 阅读 · 0 评论 -
【DesignMode】原型模式(prototype pattern)
基本介绍:原型模式(Prototype 模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone()现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10只羊。类图:代码:3.传统的方式的优缺点原创 2022-07-01 18:36:24 · 57 阅读 · 0 评论 -
【DesignMode】工厂模式 (factory pattern)
简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码)在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式.看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare,bake, cut, box完成披萨店订购功能。类图:原创 2022-06-30 16:37:01 · 58 阅读 · 0 评论 -
【DesignMode】单例模式(singleton pattern)
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory 就够,这是就会使用到单例模式。单例模式有八种方式:1) 饿汉式(静态常量)2) 饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全原创 2022-06-30 02:12:36 · 72 阅读 · 0 评论 -
【DesignMode】设计模式简介
1) 第 1 层:刚开始学编程不久,听说过什么是设计模式2) 第 2 层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道3) 第 3 层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的4) 第 4 层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的 好处。5) 第 5 层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来。1) 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式原创 2022-06-30 00:45:38 · 213 阅读 · 0 评论 -
【UML】UML类图
安装步骤为:File -> Settings -> Plugins 搜索 PlantUML ,找到 PlantUML integration 并安装。1) UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果2) UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如右图: 画 UM原创 2022-06-30 00:29:00 · 112 阅读 · 0 评论 -
【DesignMode】设计模式的7种原则
编写软件过程中,程序员面临着来自等多方面的 挑战, 设计模式是为了让程序(软件),具有更好耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性1) 设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要”2) Scott Mayers 在其巨著《Effective C++》就曾经说过:C++老手和 C++新手的区别就是前者手背上有很多伤疤一个类只做一件事情,比如:文件操作类,文件列表,文件搜索,文件名修改,文件内容修改。当然此功能可以拆的更细,更多类。一个方法只做一件事原创 2022-06-28 08:24:07 · 487 阅读 · 0 评论 -
【UML】UML的几种关系(依赖-关联-聚合-组合-继承-实现)
依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。在UML中,,由。依赖关系实例在系统实施阶段,依赖关系通常通过三种方式来实现类与类之间最常用的一种关系,它是一种结构化关系,用于如汽车和轮胎、师傅和徒弟、班级和学生等等。在UML类图中,在使用Java实现关联关系时,通常在使用类图表示关联关系时可以在关联线上标注角色名,一般使用一个表示两者之间关系的动词或者名词表示角色名(有时该原创 2022-06-28 08:00:59 · 787 阅读 · 0 评论