
设计模式学习
文章平均质量分 65
设计模式笔记
Nicky.Ma
优秀
展开
-
Spring事件监听机制及观察者模式
观察者模式也可以称之为发布-订阅(Publish/Subscribe)模式,是一种行为型的设计模式。在Spring框架中使用ApplicationEvent和ApplicationListener来实现事件监听机制原创 2022-10-16 09:08:20 · 1120 阅读 · 0 评论 -
策略模式加上InitializingBean的编程实现
实现 ApplicationContextAware 接口,通过该接口获取 Spring 容器,实现 InitializingBean 接口,接口中定义的 afterPropertiesSet(),Spring框架进行属性填充之后,将策略类加载到一个list列表里原创 2021-12-11 16:59:25 · 1385 阅读 · 0 评论 -
设计模式系列之建造者模式构建实体类
建造者模式包含如下角色Builder:抽象建造者ConcreteBuilder:具体建造者Director:指挥者Product:产品角色如果系统只需要一个具体的建造者类的时候,可以省略抽象建造者,有时候指挥者类也可以省略,让建造者类同时充当指挥者和建造者原创 2020-09-04 14:42:08 · 3820 阅读 · 0 评论 -
策略模式+元注解方式替代大量if else写法
1、策略模式简介设计模式的知识可以参考我的设计模式笔记专栏:设计模式系列博客策略模式:定义一系列算法,然后将每一个算法封装起来,并将它们可以互相替换。也就是将一系列算法封装到一系列策略类里面。策略模式是一种对象行为型模式。策略模式符合“开闭原则“Strategy Pattern: Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm原创 2020-06-28 17:43:27 · 3660 阅读 · 4 评论 -
设计模式之桥接模式(结构型)
文章目录模式定义模式角色模式分析模式例子模式应用模式定义桥接模式(Bridge Pattern)是将抽象部分和实现部分分离,使它们可以独立地改变,是一种对象结构型模式。模式角色桥接模式包含如下角色:Abstraction(抽象类)RefinedAbstraction(扩充抽象类)Implementor(实现类接口)ConcreteImplementor(具体实现类)模式分析...原创 2019-03-11 23:04:45 · 2706 阅读 · 0 评论 -
设计模式之备忘录模式(行为型)
文章目录一、模式定义二、模式角色三、模式分析四、模式例子五、模式应用一、模式定义备忘录模式(Memento Pattern):备忘录模式的定义是在不破坏封装的前提下,捕获一个对象的内部状态,并将该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。所以备忘录模式就是一种对象行为型模式。二、模式角色备忘录模式包括下面角色Originator(原发器)Memento(备忘录)...原创 2019-03-19 23:02:34 · 2508 阅读 · 0 评论 -
设计模式之访问者模式(行为型)
文章目录模式定义模式角色模式分析模式例子模式应用模式定义访问者模式:表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。所以访问者模式是一种对象行为型模式。模式角色访问者模式包括如下角色:Vistor(抽象访问者)ConcreteVisitor(具体访问者)Element(抽象元素)ConcreteElement(具体元素)...原创 2019-03-19 23:01:54 · 2664 阅读 · 0 评论 -
设计模式之装饰模式(结构型)
一、模式定义装饰模式:装饰模式就是允许向一个现有的对象添加新的功能,同时又不改变其结构,装饰模式是一种对象结构型设计模式。二、模式角色对于装饰模式可以分为如下角色Component:抽象构件ConcreteComponent:具体构件Decorator:抽象装饰类ConcreteDecorator:具体装饰类三、模式分析对于装饰模式进行解释,更易于理解。要给一个类或对象新增行...原创 2019-03-02 23:37:30 · 2830 阅读 · 0 评论 -
设计模式之适配器模式(结构型)
文章目录模式定义模式角色模式分析模式例子模式分类模式应用模式定义适配器模式(Adapter Pattern):将一个接口转换成客户希望的接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。模式角色适配器模式包括如下角色Traget(目标抽象类)Adapter(适配器类)Adaptee(适配者...原创 2019-03-11 23:06:00 · 2918 阅读 · 0 评论 -
设计模式之解释器模式(行为型)
文章目录一、模式定义二、模式角色三、模式分析一、模式定义解释器模式(Interpreter Pattern):定义语言的文法,并且建立一个解释器来解释改语言中的句子,这里的“语言”意思是规定格式和语法的代码,所以解释器模式是一种类行为型模式二、模式角色Context: 环境类Client: 客户类AbstractExpression: 抽象表达式TerminalExpression...原创 2019-04-15 21:33:57 · 2429 阅读 · 0 评论 -
设计模式之中介者模式(行为型)
文章目录一、模式定义二、模式角色三、模式分析3.1 模式作用3.2 模式优缺点3.3 模式经典代码四、典型例子五、模式应用一、模式定义中介者模式(Mediator Pattern):中介者模式就是用一个中介对象来封装一系列的对象的交互,使各对象之间不需要显式地相互作用,降低对象之间的耦合度,中介者是一种对象行为型模式。所以中介者模式适用于对象之间存在大量的关联的情况,假如一个对象改变了,我们...原创 2019-04-16 00:01:28 · 2514 阅读 · 0 评论 -
设计模式之迭代器模式(行为型)
文章目录一、模式定义二、模式角色三、模式分析四、典型例子五、适用场景一、模式定义迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor),所以迭代器模式是一种对象行为型。二、模式角色Iterator:抽象迭代器ConcreteIterator:具体迭代器Aggregate:抽象聚合类ConcreteAgg...原创 2019-04-16 00:01:59 · 2559 阅读 · 0 评论 -
设计模式命令模式(行为型)
文章目录一、模式定义二、模式角色三、模式分析四、典型例子五、适用场景一、模式定义命令模式(Command Pattern):将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分离,两者之间通过命令对象进行沟通,方便将命令对象进行储存、传递、调用、增加与管理。命令模式别名为动作(Action)模式或事务(Transaction)模式,属于对象行为型模式。二、模式角色命令模式包括如下角...原创 2019-04-16 00:02:23 · 2820 阅读 · 0 评论 -
《设计模式》学习笔记整理手册
文章目录一、GoF设计模式的分类1.1 创建型1.2 结构型1.3 行为型二、设计原则概述2.1 面向对象设计原则概述:2.2 单一职责原则2.3 开闭原则2.4 里氏代换原则2.5 依赖倒转原则2.6 接口隔离原则2.7 合成复用原则2.8 迪米特法则三、创建型设计模式3.1 抽象工厂模式3.1.1 模式定义3.1.2 模式角色3.1.3 简单例子3.1.4 抽象工厂模式和工厂模式的区别3.2 ...原创 2019-04-16 00:02:50 · 4454 阅读 · 0 评论 -
面向对象的设计原则
文章目录一、设计原则概述1.1 面向对象设计原则概述:1.2 单一职责原则1.3 开闭原则1.4 里氏代换原则1.5 依赖倒转原则1.6 接口隔离原则1.7 合成复用原则1.8 迪米特法则一、设计原则概述1.1 面向对象设计原则概述:单一职责原则(Single Responsibility Principle, SRP)开闭原则(Open-Closed Principle, OCP)里...原创 2019-04-15 12:42:56 · 2505 阅读 · 0 评论 -
设计模式之外观模式(结构型)
文章目录一、模式定义二、模式角色三、模式简单分析四、简单例子实践五、模式应用一、模式定义外观模式:外观模式就是提供一个统一的接口,用来访问子系统的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。,外观模式也称门户模式,是一种对象结构型设计模式。二、模式角色从模式定义可以知道,外观模式应该包含如下角色:Frcade:外观角色SubSystem:子系统角色Client:客户...原创 2019-03-01 00:08:17 · 3259 阅读 · 0 评论 -
设计模式之原型模式(创建型)
文章目录模式定义模式结构原型模式类别模式应用模式定义原型模式(Prototype Pattern):原型模式是提供一个原型接口,提供原型的克隆,创建新的对象,是一种对象创建型模式。模式结构原型模式包括如下角色Prototype :抽象原型类ConcretePrototype:具体原型类Client:客户类原型模式类别一个类包括另外一个成员变量,在使用原型模式进行对象克隆时,如...原创 2019-02-17 23:05:36 · 3333 阅读 · 0 评论 -
设计模式之代理模式(结构型)
第一章1.1 模式定义代理模式:代理模式就是引入一个代理对象,通过代理对象实现对原对象的引用。代理模式是一种对象结构型。1.2 代理模式包含如下角色Subject:抽象主题角色Proxy:代理主题角色RealSubject:真实主题角色1.3 模式例子public class Proxy implements Subject{ private RealSubject...原创 2019-01-20 00:05:49 · 3141 阅读 · 0 评论 -
单例模式在JDBC数据库连接操作里的应用
设计模式之单例模式一般应用在在数据库操作里,数据库操作就要经常创建实例,然后进行数据库操作,所有就可以将数据库操作的方法,进行封装,然后采用单例模式进行设计,然后采用单例模式之后,就可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能编写数据库配置文件DBHelpUtil.java:/** * * 数据库连接的类原创 2016-03-12 20:23:55 · 14471 阅读 · 5 评论 -
静态代理和动态代理简介
第一章 前言第二章 静态代理第三章 动态代理1 JDK动态代理2 CGLIB动态代理第一章 前言在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。 代理模式的角色分为: 主题接口: 即代理类的所实现的行为接口原创 2017-07-14 15:49:19 · 2600 阅读 · 0 评论 -
设计模式之建造者模式(创建型)
模式定义建造者模式属于23种设计模式中的创建型模式,可以理解为创建对象的一种很好的方法。所谓建造者模式就是将组件和组件的组件过程分开,然后一步一步建造一个复杂的对象。所以建造者模式又叫生成器模式。 建造者模式类图 模式结构建造者模式包含如下角色 Builder:抽象建造者 ConcreteBuilder:具体建造者 Director:指挥者 Product:产品角色...原创 2018-04-24 11:04:29 · 2725 阅读 · 2 评论 -
设计模式之3种工厂模式对比和简单介绍
定义简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。角色简单工厂模式包含如下角色 Factory:工厂角色 Product:抽象产品角色 ConcreteProduct:具体产品角色简单实例public abstract class Produce{ public abstract void m1()''...原创 2018-04-24 17:35:56 · 3377 阅读 · 0 评论 -
设计模式之单例模式(创建型)
前言本博客介绍一种创建型模式:单例模式 这是一种比较容易理解的设计模式,可以理解为创建对象的一种很好的做法。可以尽量避免创建过多的对象,给JVM造成很大的负载。应用场景单例模式的一些应用场景: 1、比如数据连接类,这是需要经常调用的 2、网站访问量统计的服务类,需要多次调用 3、导出导入Excel表,一些业务复杂的系统需要多次调用 …总结起来就是需要经常调用的通用类,...原创 2018-04-20 15:28:13 · 2216 阅读 · 0 评论 -
设计模式之观察者模式(行为型)
模式定义观察者模式(Observer Pattern):观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖的对象皆得到通知并且被自动更新。不过观察者只能知道目标发送了改变,而不能知道具体怎么改变的。观察者角色观察者模式包含如下角色:Subject:目标ConcreteSubject:具体目标Observer:观察者ConcreteO...原创 2018-07-22 17:37:25 · 2319 阅读 · 0 评论 -
设计模式之职责链模式(行为型)
文章目录一、行为型模式二、职责链模式定义三、职责链模式角色四、简单实例一、行为型模式介绍职责链模式之前先介绍一下行为型设计模式,因为按照GoF模式分类,职责链就是一种行为型设计模式。行为型设计模式就是主要表示类或者对象之间的关联关系,分为类行为型和对象行为型。类行为型一般都是通过类的继承或者多态等等方式实现。对象行为型就是通过对象的聚合等等关联实现。二、职责链模式定义职责链模式是一种对象行...原创 2018-12-23 00:04:06 · 2930 阅读 · 0 评论 -
设计模式之状态模式(行为型)
模式定义一个对象在其内部状态改变时改变其行为,这个对象我们可以称为状态对象,所以状态模式是一种对象行为型模式。模式结构Context:环境类Context类也可以称之为上下文类,实际上就是拥有状态的对象,可以理解为状态管理器。State:抽象状态类抽象状态类可以是一个接口类或者抽象类,反正实现的话都是通过具体状态类。抽象状态类,封装环境类不同状态下的所有动作方法。Conc...原创 2018-12-23 00:04:55 · 3446 阅读 · 0 评论 -
设计模式之模板方法模式(行为型)
文章目录一、模式定义二、模式角色三、模式分析四、具体例子五、模式应用场景一、模式定义模板方法模式就是在一个抽象类中定义一些骨架方法,然后通过类继承的方法,将一些方法延迟到继承类里。模板方法模式是一种类行为型模式,是一种比较常用的方法。不属于对象行为型模式,因为只是通过类继承实现。Template Method Pattern: Define the skeleton of an algor...原创 2019-01-01 00:02:07 · 3266 阅读 · 0 评论 -
设计模式之享元模式(结构型)
模式定义享元模式(Flyweight Pattern)就是通过共享技术实现大量细粒度对象的复用。享元模式是通过细粒度对象的共享,所以也可以说享元模式是一种轻量级模式。按照Gof模式分类,享元模式属于对象结构型模式。模式解释可以共享的内容称为内部状态(Intrinsic State),需要外部环境设置的不能共享的内容称为外部状态(Extrinsic State)。享元模式需要创建一个享元工...原创 2019-01-05 23:34:49 · 2968 阅读 · 0 评论 -
设计模式之简单工厂模式(创建型)
模式定义简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。模式角色简单工厂模式包含如下角色Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色简单实例public abstract class Produce{ public abstract void m1()''}publi...原创 2019-01-02 00:14:53 · 3066 阅读 · 0 评论 -
设计模式之抽象工厂模式(创建型)
模式定义抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。模式角色抽象工厂模式包含如下角色:AbstractFactory:抽象工厂ConcreteFactory:具体工厂Product:具体产品AbstractProduct:抽象产品简单例子抽象...原创 2019-01-02 00:15:27 · 3053 阅读 · 0 评论 -
设计模式之工厂方法模式(创建型)
一、模式定义工厂方法模式:又称工厂模式,也叫虚拟构造器模式,属于构建型设计模式,工厂方法模式是在简单工厂模式上进行拓展,生产产品的过程由具体工厂类实现,基类只实现接口,这使得工厂方法模式可以在不修改工厂角色的情况下,引进新的产品。工作方法模式也符合”开闭原则“。工厂方法模式也称虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式二...原创 2019-01-02 00:16:00 · 3285 阅读 · 0 评论 -
设计模式之策略模式(行为型)
一、模式定义策略模式:定义一系列算法,然后将每一个算法封装起来,并将它们可以互相替换。也就是将一系列算法封装到一系列策略类里面。策略模式是一种对象行为型模式。策略模式符合“开闭原则“Strategy Pattern: Define a family of algorithms, encapsulate each one, and make them interchangeable. Stra...原创 2019-01-02 00:16:33 · 3149 阅读 · 0 评论 -
设计模式之组合模式(结构型)
文章目录模式意图模式定义模式角色模式分析实际例子模式应用模式意图介绍模式定义定义之前先介绍一下组合模式的意图。其实就是将对象组合成整体-部分层次的树形结构,客户端调用时,对于调用容器对象或者说组合对象(“树枝”)和单个对象(“树叶”)是一致的。模式定义组合模式(Composite Pattern):组合多个对象形成树形结构来表示“整体-部分”的结构层次。组合模式又称“整体-部分”(Par...原创 2019-01-13 23:03:07 · 3079 阅读 · 0 评论 -
设计模式入门
设计模式在软件开发过程很重要的。目的是方便代码重用。也是成为一名优秀的软件结构是一定要学习的知识。各种开发语言都有对应的设计模式,本文只讲Java开发的23种设计模式。比较常见的分类,是将其归类为创建型、结构型、行为型,学设计模式要掌握如下23种设计模式:总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构...原创 2016-01-19 13:39:27 · 2304 阅读 · 2 评论