自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 23种设计模式(解释器模式)

23种设计模式(解释器模式)一、理解解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。二、代码1.结构1.抽象表达式(Abstract Expression)角色:定义解释器的接口,约定解释器的解释操作,主要包含解释方法 interpret()。 2/终结符表达式(TerminalExpression)角

2021-01-24 15:40:20 141

原创 23种设计模式(常见面试题)

23种设计模式(常见面试题)1.什么是设计模式?答:设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。2.你当初为什么要学习设计模式?答:为了看懂源代码:如果不懂设计模式的话,去看Jdk、Spring、SpringMVC、IO等的源码,会感到很迷惑,什么都看不懂。为了看看前辈们的代码:比如去工作不一定是直接分配给我新项目,很有可能是前辈的项目,如果他们用了设计模式,

2021-01-24 15:26:07 2886

原创 23种设计模式(备忘录模式)

23种设计模式(备忘录模式)一、理解备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。二、代码1.结构1.发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。2.备忘录(Memento)角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。3.管理

2021-01-22 14:28:53 111

原创 23种设计模式(访问者模式)

23种设计模式(访问者模式)一、理解访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。二、代码1.结构1.抽象访问者(Visitor)角色:定义一个访问具体元素的接口,为每个具体元素类对应一个访问操作 visit() ,该操作中的参数类型标识了被访问的具体元素。2.具体访问者(

2021-01-22 14:16:35 147

原创 23种设计模式(迭代器模式)

23种设计模式(迭代器模式)一、理解迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。二、代码1.结构1.抽象聚合(Aggregate)角色:定义存储、添加、删除聚合对象以及创建迭代器对象的接口。2.具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例。3.抽象迭代器(Iterator)角色:定义访问和遍历聚合元素的接口,通常包含 hasNext()、first()、next() 等方法

2021-01-22 13:57:13 108

原创 23种设计模式(中介者模式)

23种设计模式(中介者模式)一、理解中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。二、代码1.结构1.抽象中介者(Mediator)角色:它是中介者的接口,提供了同事对象注册与转发同事对象信息的抽象方法。2.具体中介者(Concrete Mediator)角色:实现中介者接口,定义一个 List 来管理同事对象,协调各个同事角色之间的交互关系,因此

2021-01-22 12:48:25 386

原创 23种设计模式(观察者模式)

23种设计模式(观察者模式)一、理解观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。二、代码1.结构1.抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。2.具体主题(Concrete Subject)角色:也叫具体目标类,它实现抽象

2021-01-22 12:27:59 187

原创 23种设计模式(状态模式)

23种设计模式(状态模式)一、理解状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为二、上代码1。结构1.环境类(Context)角色:也称为上下文,它定义了客户端需要的接口,内部维护一个当前状态,并负责具体状态的切换。2.抽象状态(State)角色:定义一个接口,用以封装环境对象中的特定状态所对应的行为,可以有一个或多个行为。3.具体状态(Concrete State)角色:实现抽象状态所对应的行为,并

2021-01-22 11:01:54 432

原创 23种设计模式(责任链模式)

23种设计模式(责任链模式)一、理解模式的定义与特点 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。注意:责任链模式也叫职责链模式。二、上代码1. 结构1.抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。2.具体处理者(Concrete Handle

2021-01-22 10:54:14 111

原创 23种设计模式(命令模式)

23种设计模式(命令模式)一、理解命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。二、上代码1.结构1.抽象命令类(Command)角色:声明执行命令的接口,拥有执行命令的抽象方法 execute()。2.具体命令类(Concrete Command)角色:是抽象命令类的具体实现类,它拥有接收者对象,并通过调用接收者的功能来完成命令要执行的操作。3

2021-01-22 10:48:02 116

原创 23种设计模式(策略模式)

23种设计模式(策略模式)一、理解策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。二、上代码1.结构1.抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。2.具体策略(Conc

2021-01-22 10:33:22 137

原创 23种设计模式(模板方法模式)

23种设计模式(模板方法模式)一、.理解模板方法(TemplateMethod)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。二、上代码1.结构1)抽象类/抽象模板(Abstract Class)① 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。② 基本方法:是整个算法中的一个步骤。2)具体子类/具体实现(Concrete Class)2.抽象类//抽

2021-01-22 10:17:34 142

原创 23种设计模式(组合模式)

23种设计模式(组合模式)一、理解:定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。二、上代码1.结构需求:1.抽象构件(Component)角色:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象构件还声明访问和管理子类的接口;在安全式的组合模式中不声明访问和管理子类的接口,管理工作由树枝构件完成。2.树叶构件(Leaf)角色:是组合中的叶节点对

2021-01-21 23:23:19 139 1

原创 23种设计模式(享元模式)

23种设计模式(享元模式)一、享元模式理解享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。二、上代码1.结构需求:1.抽象享元角色(Flyweight):是所有的具体享元类的基类,为具体享元规范需要实现的公共接口,非享元的外部状态以参数的形式通过方法传入。2.具体享元(Concrete Flyweight)角色:实现抽象享元角色中所规定的接口。3.非

2021-01-21 23:13:43 85

原创 23种设计模式(外观模式)

23种设计模式(外观模式)一、外观模式理解1.概念:外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。二、上代码1.整体需求:外观(Facade)角色:为多个子系统对外提供一个共同的接口。子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观角色访问它。客户(Client)

2021-01-21 23:04:10 144

原创 23种设计模式(装饰模式)

23种设计模式(装饰模式)一、装饰模式理解动态地给一个对象添加一些额外的职责(再不改变原有对象的基础上) 结构图如下:二、直接上代码Component抽象类Component是一个接口或是抽象类,就是定义我们最核心的对象,也就是最原始的对象。package com.xiao.jiegouxing.decorator;public interface Component { void operation();}2.ComponentImpl类具体构

2021-01-19 22:09:49 97

原创 23种设计模式(代理模式)

23种设计模式(代理模式)一、代理模式理解1.为什么要学习代理模式?因为AOP的底层机制就是动态代理!2.分类:静态代理动态代理二、静态代理1.静态代理角色分析抽象角色 : 一般使用接口或者抽象类来实现真实角色 : 被代理的角色代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .客户 : 使用代理角色来进行一些操作 .2.代码实现Rent . java 即抽象角色//抽象角色:租房public inte

2021-01-19 19:49:45 130

原创 23种设计模式(桥接模式)

23种设计模式(桥接模式)(愿岁月清净)一、对桥接模式的理解桥接模式与适配器模式比较相像,都是A类需要持有另一个B类并调用B的方法,但对于适配器模式,两个维度(电脑和各种端口)是没有包含关系的,使用时只需获取适配器,将端口对象传入适配器即可,而对于桥接模式,电脑类包含了品牌类,两者有耦合关系。二、直接上代码品牌接口:public interface Brand { void info();}品牌类:public class Huawei implements Brand {

2021-01-18 19:36:05 207

原创 2019蓝桥杯省赛JavaB组

2019蓝桥杯省赛JavaB组一、组合1.题目:作为篮球队教练,你需要从以下名单中选出1 号位至5 号位各一名球员, 组成球队的首发阵容。 每位球员担任1 号位至5号位时的评分如下表所示。请你计算首发阵容1 号位至5 号位的评分之和最大可能是多少?这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。2.解答:直接找出每列的最大数但是五个号位不能为一个人若重复了就留下较大的分别为: 97,99,99,97,9

2021-01-18 04:32:14 817 1

原创 23种设计模式(适配器模式)

23种设计模式(适配器模式)(愿岁月清净)一、对适配器模式的理解类似于电脑上网需要用usb接口插网线,但是网线不是usb接口,所以需要一个适配器把两个连接起来。二、直接上代码Adapteepackage com.kuang.adapter;//要被适配的类:网线public class Adaptee { public void request() { System.out.println("连接网线上网"); }}Adapterpackage co

2021-01-18 03:58:54 175

原创 23种设计模式(原型模式)

23种设计模式(原型模式)(愿岁月清净)1.定义类似于克隆(小羊多利)2.分类原型模式的克隆分为浅克隆和深克隆。3.代码(浅克隆)3.1 Videopackage com.kuang.prototype.demo01;import java.util.Date;/*1..实现一个接口Cloneable2.重写一个方法clone()*///Videopublic class Video implements Cloneable { //无良up 主,克隆别人的视频! .

2021-01-03 11:06:22 101

原创 23种设计模式(建造者模式)

23种设计模式(建造者模式)(愿岁月清净)1.建造者模式定义讲一个复杂的对象的创建与他的表示分离,使得同样的构建过程可以创建不同的表示。2.应用举例工厂(建造者模式):负责制造汽车(组装过程和细节在工厂内)汽车购买者(用户):你只需要说出需要的型号(对象的类型和内容),然后直接购买就可以使用了(不需要知道汽车是如何组装的,如何建造的)3.栗子4.具体代码实现1.Productpackage com.kuang.builder;//产品,房子public class Pro

2021-01-02 12:38:18 114

原创 23种设计模式(抽象工厂模式)

23种设计模式(抽象工厂模式)(愿岁月清净)1.抽象工厂模式定义抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口。无需指定他们具体的类。2.使用场景:客户端(应用层)不依赖于产品类实例如何被创建‘实现等细节强调一系列相关的产品对象(属于同一产品类)一起使用创建对象需要大量的重复代码提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖与具体的实现3.代码说明1.IPhoneProductpackage com.kuang.factory.abstract1;

2021-01-01 06:51:02 270

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除