自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

不相信自己的人 连努力的价值都没有

  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 IDEA错误:Cannot start compilation: the output path is not specified for module “XXX“.

错误是发生在从github上checkout自己的项目时。因为没有将配置文件一起上传,所以在运行java程序时有了这个报错:Cannot start compilation: the output path is not specified for module “Test”. Specify the output path in Configure Project.其实这个错误是因为没有...

2019-01-24 11:23:54 21879 6

原创 设计模式汇总

设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。设计

2019-01-14 00:09:10 292

原创 设计模式之访问者模式

模式定义访问者模式即表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。​ 首先我们要明确一点就是访问者模式适用于数据结构相对稳定的系统。它是将数据的操作与数据结构进行分离了,如果某个系统的数据结构相对稳定,但是操作算法易于变化的话,就比较适用适用访问者模式,因为访问者模式使得算法操作的增加变得比较简单了。模式结构下图是访问者...

2019-01-14 00:05:59 210

原创 设计模式之命令模式

基本定义命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式支持可撤销的操作。命令模式可以对发送者额接受者完全解耦,发送者也接收者之间并没有直接的联系,发送者只需要知道如何发送请求,不需要关心请求是如何完成了。这就是命令模式,命令模式将方法调用给封装起来了。模式结构从上图可以看出命令模式包含如下几个角色:Command: 抽象命令类Con...

2019-01-14 00:05:49 178

原创 设计模式之状态模式

.模式定义​ 在很多情况下,一个对象的行为取决于它的一个或多个变化的属性,这些属性我们称之为状态,这个对象称之为状态对象。对于状态对象而已,它的行为依赖于它的状态,比如你要预订房间,那么只有当该房间为空闲时你才能预订,你想入住该房间也只有当你预订了该房间或者该房间为空闲时。对于这样的一个对象,当它在于外部事件产生互动的时候,其内部状态就会发生改变,从而使得他的行为也随之发生改变。​ 那...

2019-01-14 00:05:39 203

原创 设计模式之备忘录模式

模式定义​ 所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。​ 备忘录模式将要保存的细节给封装在备忘录中,就是那天要改变保存的细节也不会影响到客户端。模式结构​ 下图是备忘录模式的UML结构图:​ 备忘录模式主要包含入下几个角色:​ Originator: 原发器。负责创建一个备忘录...

2019-01-14 00:05:28 335

原创 设计模式之模板方法模式

模式定义所谓模板方法模式就是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板方法模式是基于继承的代码复用技术的。在模板方法模式中,我们可以将相同部分的代码放在父类中,而将不同的代码放入不同的子类中。也就是说我们需要声明一个抽象的父类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法让子...

2019-01-14 00:05:13 538

原创 设计模式之迭代器模式

迭代器模式定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。迭代器模式的角色构成(1)迭代器角色(Iterator):定义遍历元素所需要的方法,一般来说会有这么三个方法:取得下一个元素的方法next(),判断是否遍历结束的方法hasNext()),移出当前对象的方法remove(),(2)具体迭代器角色(Concrete ...

2019-01-13 18:48:39 231

原创 设计模式之职责链模式

模式定义职责链模式,也叫责任链模式或者责任连锁模式。 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止,这就是职责链模式,也叫责任链模式或者责任连锁模式。​ 在职责链模式中最关键的一点就是客户提交请求后,请求沿着链往下传递直到有一个处理者处理它,在这里客户无需关心它的请求是哪个处理者来处理,反正总有一个处理者...

2019-01-13 18:48:29 215

原创 设计模式之中介者模式

在我们的生活中处处充斥着“中介者”,比如你租房、买房、出国留学、找工作、旅游等等可能都需要那些中介者的帮助,同时我们也深受其害,高昂的中介费,虚假信息。在地球上最大的中介者就是联合国了,它主要用来维护国际和平与安全、解决国际间经济、社会、文化和人道主义性质的问题。国与国之间的关系异常复杂,会因为各种各样的利益关系来结成盟友或者敌人,熟话说没有永远的朋友,也没有永远的敌人,只有永远的利益!所以国与国...

2019-01-13 18:48:13 172

原创 设计模式之解释器模式

​定义 解释器模式(Interpreter)是一种特殊的设计模式,它建立一个解释器,对于给定的一个计算机程序设计语言,用来解释预先定义的文法,适配器模式是一种简单的语法解释器架构。下图是解释器模式的UML结构图。​ 解释器模式主要包含如下几个角色:​ AbstractExpression: 抽象表达式。声明一个抽象的解释操作,该接口为抽象语法树中所有的节点共...

2019-01-13 18:47:59 181

原创 设计模式之适配器模式

模式定义何谓适配器模式?适配器模式就是将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。在适配器模式中,我们可以定义一个包装类,包装不兼容接口的对象,这个包装类就是适配器,它所包装的对象就是适配者。适配器提供给客户需要的接口,适配器的实现就是将客户的请求转换成对适配者的相应的接口的引用。也就是说,当客户调用适配器的方法时,适配器方法内部将调用适配者的方...

2019-01-13 18:47:42 264

原创 设计模式之桥接模式

模式定义​ 桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。​ 桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。​ 将抽象部分与他的实现部分分离这句话不是很好理解,其实这并不是将抽象类与他的派生类分离,而是抽象类和它的派生类用来实现自己的对象。这样还是不能理解的话。我们就先来认清什么是抽象化,什么是实现化,什么是脱...

2019-01-13 18:47:27 250

原创 设计模式之组合模式

模式定义​ 组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。​ 组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性,它将对象组织到树结构中,可以用来描述整体与部分的关系。同时它也模糊了简单元素(叶子对象)和复杂元素(容器对象)的概念,使得客户能够像处理简单元素一样来处理复杂元素,从而使客户程序能够与复杂元素的内部结构解耦。​ 在使用组合模式中需要注意一点也...

2019-01-13 18:47:11 171

原创 设计模式之外观模式

针对外观模式,在项目开发和实际运用中十分频繁,但是其极易理解,下面就简要介绍一下。概念介绍  外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。角色及使用场景  简单来说,该模式就是把一些复杂的流程封装成一个接口供...

2019-01-13 18:47:00 970

原创 设计模式之代理模式

代理模式代理(Proxy)是一种构造型的设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联...

2019-01-13 18:46:31 118

原创 设计模式之享元模式

模式定义​ 所谓享元模式就是运行共享技术有效地支持大量细粒度对象的复用。系统使用少量对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。​ 共享模式是支持大量细粒度对象的复用,所以享元模式要求能够共享的对象必须是细粒度对象。​ 在了解享元模式之前我们先要了解两个概念:内部状态、外部状态。​ 内部状态:在享元对象内部不随外界环境改变而改变的共享部分。​ 外部状态:随着环...

2019-01-13 18:46:00 226

原创 设计模式之观察者模式

定义当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。观察者模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步发生改变的对象称之为观察目标,而被通知的对象称之为观察者。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,所以可以根据需要增加和删除观察者,使得系统更易于扩展。观察者模式又称为发布-订阅模式。模...

2019-01-12 14:19:57 223

原创 设计模式之策略模式

策略模式对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择由客户端决定使用哪种策略。策略模式主要用来处理算法的切换。 在我们的生活中我们可以通过很多种不同的方式来完成一件事情,这里的每一种方式都可以称作为一种策略。我们可以根据环境、条件等因素的不同选择不同的策略来完成这件事情。比如马上过...

2019-01-12 13:44:23 222

原创 关于ArrayList.clear()与=null以及new ArrayList<E>()

ArrayList是常用到的JCF类,用来保存类型相同的一组对象,并通过下标来快速访问指定对象。今天讨论的是当我们使用完ArrayList后应该选择怎样合适的处理方式。这里现在有三种方式如下:1. 使用ArrayList的对象方法clear()ArrayList<String> list = new ArrayList<String>();list.add(...

2019-01-11 08:49:09 622

原创 设计模式之装饰者模式

装饰(Decorator)模式又叫做包装模式,动态地给一个对象添加额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。。首先定义一个Car ,这个车类有在地上跑,在天上飞,在水里游的方法public class Car { public void run(){ System.out.println("在地上跑"); } public void...

2019-01-10 23:43:02 241

原创 设计模式之建造者模式

Builder模式也叫建造者模式或者生成器模式,用来隐藏复合对象的创建过程,建造者,用于对复杂对象的构造、初始化,与工厂模式不同的是,建造者的目的在于把复杂构造过程从不同对象展现中抽离出来,使得同样的构造工序可以展现出不同的产品对象。建造者模式通常包括下面几个角色:1、Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉...

2019-01-10 22:44:10 148

原创 设计模式之原型模式

原型模式是一种对象创建型模型,它采用复制原型对象的方法来创建对象的实例,具有与原型一样的数据。模式定义​ 所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。​ 在原型模式中,所发动创建的对象通过请求原型对象来拷贝原型对象自己来实现创建过程,当然所发动创建的对象需要知道原型对象的类型。这里也就是说所发动创建的对象只需要知道原型对象的类型就可以获得更多的原型实...

2019-01-10 21:51:34 201

原创 设计模式之单例模式

单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在正整个程序空间中,该类只存在一个实例对象。在GOF对单例模式的定义就是:保证一个类只有一个实例存在,同时提供能对该实例加以访问的全局访问方法基本定义所谓单例模式就是确保某一个类只有一个实例,并且提供一个全局访问点。从上面可以看出单例模式有如下几个特点: 一、它只有一个实例。 二...

2019-01-10 19:47:41 137

原创 设计模式之抽象工厂模式

在工厂方法模式中,我们使用一个工厂创建一个产品,也就是说一个具体的工厂对应一个具体的产品。但是有时候我们需要一个工厂能够提供多个产品对象,而不是单一的对象,这个时候我们就需要使用抽象工厂模式。抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的,抽象工厂迷失可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。在讲解抽象工厂模式之前,...

2019-01-10 19:01:25 225

原创 设计模式之工厂方法模式

工厂方法模式Factory Method,又称多态性工厂模式。在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将具体创建的工作交给子类去做。该核心类成为一个抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。意图定义一个用户创建对象的接口,让子类决定实例化哪一个类,工厂方法模式使一个类的实例化延迟到其子类。参与者抽象产品角色(...

2019-01-09 21:07:39 183

原创 设计模式之简单工厂模式

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的,但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部...

2019-01-09 20:25:07 251

原创 QRCode.js:js生成二维码

http://www.runoob.com/w3cnote/javascript-qrcodejs-library.html参考菜鸟教程&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;...

2019-01-08 14:16:56 814 1

原创 linux 查看并对外开放端口(防火墙拦截处理)

https://www.cnblogs.com/blog-yuesheng521/p/7198829.html查看端口是否可访问:telnet ip 端口号 (如本机的35465:telnet localhost 35465)开放的端口位于/etc/sysconfig/iptables中查看时通过 more /etc/sysconfig/iptables 命令查看如果想开放端口...

2019-01-06 19:02:26 3462

原创 CentOS7下解决ifconfig command not found的办法

https://blog.csdn.net/ryu2003/article/details/78492127注:本办法仅限于可联网的机器,即在安装时设置了IP地址和DNS可正常上网。解决办法如下:1、输入ip addr 确认IP地址是否设置正常,设置好如下所示,如果没有获取到IP地址则设置一个即可。安装net-tool插件,此插件中带有此命令安装命令:sudo yum ...

2019-01-06 15:32:36 183

原创 linux 执行jar包的时候报no main manifest attribute;

https://blog.csdn.net/kangkangwanwan/article/details/78592546大致意思就是找不到main主程序,现在情况是 :maven项目使用maven打包后在linux上执行提示no main manifest attribute;同时的该项目是一个springboot项目 ,由于使用maven创建没有加入maven的打包插件 ...

2019-01-06 13:27:23 2852

原创 springcloud2.x之management.security.enabled=false报错处理

https://www.cnblogs.com/hsz-csy/p/9733259.html# 刷新配置,在spring boot 2.x 之前1.x的management.security.enabled失效,新的配置为management.endpoints.web.exposure.include=bus-refresh...

2019-01-05 21:56:25 2408

原创 Invocation of destroy method failed on bean with name ‘scopedTarget.eurekaClient‘: org.springframewo

https://blog.csdn.net/StriverChuiYing/article/details/81749793Invocation of destroy method failed on bean with name 'scopedTarget.eurekaClient': org.springframework.beans.factory.BeanCreationNot...

2019-01-05 15:23:35 2335

原创 Idea开发springBoot 使用 thymeleaf 模板$表达式报红波浪线解决方案

https://blog.csdn.net/niuniu1994/article/details/83245743第三种方案:关闭IDEA对于thymeleaf的数据验证选项(全局所有文件都会应用设置,飘红消失)

2019-01-02 21:12:14 831

原创 SpringBoot集成springsession利用redis来实现session共享

https://blog.csdn.net/dsen726/article/details/80880458pom文件 &lt;dependency&gt; &lt;groupId&gt;org.springframework.session&lt;/groupId&gt; &lt;artifactId&gt;spring-session-data-redis&lt;/ar...

2019-01-02 16:39:26 355

原创 idea设置运行当前工程的目录

点击idea右上角的运行主函数的按钮,点击Edit Configurations,点击Working directory可以在上面更改目录,也可直接点击最后面对应的小图标,选择MODULE_DIR。...

2019-01-02 14:58:10 5246

原创 SpringBoot2.0 WebMvcConfigurerAdapter方法过时(踩坑)使用WebMvcConfigurationSupport或者WebMvcConfigurer来代替

在springboot2.0之前 我们都是 继承 WebMvcConfigurerAdapter 来实现url的定向,在springboot 2.0以后 WebMvcConfigurerAdapter 这个方法已经过时,那怎么来修改呢?(1)改成继承WebMvcConfigurationSupport这个类,在扩展的类中重写父类的方法即可,但是这种方式是有问题的,这种方式会屏蔽Spring B...

2019-01-02 10:18:22 1667

空空如也

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

TA关注的人

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