设计模式学习
何以解忧,唯有..
这个作者很懒,什么都没留下…
展开
-
设计模式之桥接设计模式
概述 基本介绍 1、桥接模式(Bridge Pattern)是指:将现实和抽象放在两个不同的类层次中,使这两个层次可以独立改变; 2、桥接模式是一种结构型设计模式 3、Bridge 设计模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责,它的主要特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展 桥接模式原理类图 说明: 1、Client类:桥接模式的调用者; 2、抽象类(Abstraction) :维护了Implementor /即它的实现类C原创 2020-07-23 15:20:28 · 321 阅读 · 0 评论 -
设计模式之适配器设计模式
概述 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 适配器分类 适配器分为,类适配器、对象适配、接口适配方式 类适配器方式采用继承方式,对象适配方式使用构造函数传递 适配器应用场景 1、我们在使用第三方的类库,或者说第三方的API的时候,我们通过适配器转换来满足现有系统的使用需求。 2、我们的旧系统与新系统进行原创 2020-07-16 17:36:13 · 131 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式介绍 观察者模式面向的需求是:A对象(观察者)对B对象(被观察者)的某种变化高度敏感,需要在B变化的一瞬间做出反应。举个例子,新闻里喜闻乐见的警察抓小偷,警察需要在小偷伸手作案的时候实施抓捕。在这个例子里,警察是观察者、小偷是被观察者,警察需要时刻盯着小偷的一举一动,才能保证不会错过任何瞬间。程序里的观察者和这种真正的【观察】略有不同,观察者不需要时刻盯着被观察者(例如A不需要每隔1ms就检查一次B的状态),二是采用注册(Register)或者成为订阅(Subscribe)的方式告诉被观察者:我需原创 2020-07-15 15:43:31 · 130 阅读 · 0 评论 -
设计模式之模板模式
模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式,它的子类可以按照需要重写方法实现,但调用将以抽象类中定义的方式进行,这种类型的设计模式属于行为型模式。 使用场景 1、有多个子类共有的方法,且逻辑相同 2、重要的、复杂的方法,可以考虑作为模板方法 模板模式优点 1、具体细节步骤实现定义在子类中,子类定义详细处理算法是不会改变算法整体结构。 2、代码复用的基本技术,在数据库设计中尤为重要。 3、存在一种反向的控制结构,通过一个父类调用其子类的操作,通过子类对父原创 2020-07-10 17:16:08 · 173 阅读 · 0 评论 -
设计模式之建造者模式
概述 建造者设计模式(Builder Pattern)属于创建型设计模式,主要用于创建复杂的对象,可将复杂对象的构建过程抽象出来,通过不同实现的构建者和装配者最终组装出不同的对象,可以非常方便的增加不同实现的构建者、组装者而不用修改以前的代码。 本质 建造者设计模式(Builder Pattern)分离了对象子组件的构造过程和组装过程,实现了构造和组装的解耦,不同的构造器相同的组装顺序,以及相同的构造器不同的组装顺序都可以创建出不同的对象,使得构建与组装充分解耦,进而实现构建算法与组装算法的解耦,从而实现更原创 2020-07-09 16:38:51 · 110 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式定义 工厂设计模式,顾名思义,就是用来生产对象的,在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则,如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解耦,如果要更换对象,直接在工厂里更换该对象即可,达到了与对象解耦的目的;所以说,工厂模式最大的优点就是:解耦 介绍三种工厂设计模式的使用: 1、简单工厂 2、工厂方法 3、抽象工厂 简单工厂设计模原创 2020-07-06 15:30:13 · 1573 阅读 · 0 评论 -
设计模式之策略模式
策略模式(Strategy Pattern) 在策略模式中,一个行为可以在系统运行时动态修改,这种类型设计模式是行为设计模式,策略模式中,会有代表各种策略的对象和执行策略的context上下文对象,策略对象改变context执行的算法。 举例: 支付系统中,很多支付策略,比如 支付宝、微信、银联,在支付时需要选择其中一种支付策略进行支付业务 简要介绍 1、用途:定义一系列策略,他们实现自己的算法,使用策略模式实现在运行时动态替换各个策略 2、解决难点:在很多类似算法的实现中,使用 if …else 会造成难原创 2020-07-03 11:20:41 · 174 阅读 · 0 评论 -
装饰者设计模式
一、概述 动态的给一个对象增加一些额外的职责,增加对象的功能来说,装饰者模式比生成子类实现更加灵活,装饰者模式石一种对象结构性模式。 二、装饰者对象角色 Component(抽象构件) 它是具体构件和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的方式处理未被装饰的对象以及装饰之后的对象,实现客户端的透明操作。 ConcreteComponent(被装饰者) 它...原创 2020-04-20 21:49:35 · 188 阅读 · 0 评论 -
责任链设计模式
一、责任链模式定义 责任链模式(Responsibility Pattern), 是行为型设计模式之一。这种模型结构有点类似现实生活中铁链,由一个个铁环首尾相接构成一条链,如果这种结构用在编程领域,则每个节点可以看做一个对象,每个对象有不同的处理逻辑,将一个请求从链的首端发出,沿着链的路径依次传递每个节点对象,直到有对象处理这个请求为止,我们将这样一种模式称为责任链模式。 二、责任链模式的使用场景...原创 2020-04-19 15:55:20 · 2299 阅读 · 0 评论