自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yoroshiku IT

主要关注微服务,大数据与机器学习等应用技术。

  • 博客(47)
  • 收藏
  • 关注

原创 设计模式之状态模式

0x01.定义与类型定义:允许一个对象在内部状态改变时,改变它的行为。类型:行为型UML类图,这个基本实现类似电灯开关那种(0,1)的状态切换。Java实现/** * 状态上下文 * 维护一个state实例,这个为实体当前的状态 */public class Context { /** * 当前的状态 */ private Stat...

2019-11-23 14:48:07 236

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

0x01.定义与类型定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。补充定义:可以在不改变各元素的类的前提下,定义作用于这些元素的操作。类型:行为型UML类图Java实现/** * 访问者...

2019-11-22 22:26:30 184

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

责任链模式0x01.定义与类型定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。类型:行为型UML类图java实现/** * 抽象处理类 */public abstract class Handler { //责任链下一个节点 ...

2019-11-20 18:21:35 191

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

0x01.定义与类型定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。通过使对象明确地相互引用来促进松散耦合,并允许独立地改变它们的交互。类型:行为型模式简单实现/** * 同事抽象类 */public abstract class Colleague { //...

2019-11-16 18:08:20 237

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

0x01.定义与类型定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。类型:行为型UML类图基本代码实现/** * 发起人类 */public class Originator { /** * 状态编码 */ private...

2019-11-05 18:54:37 151

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

0x01.定义与类型定义:定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。类型:行为型UML类图示例代码实现/** * 被观察实例抽象定义 */public abstract class Subject { /** * 观察者数组 */ protec...

2019-11-02 13:08:08 109

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

0x01.定义与类型定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。为了解释一种语言,而为语言创建的解释器。类型:行为型UML类图一个解释器模式中包含的四种角色抽象(或接口)解释器(Interpreter):声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interpret()方法,称为解释操作。具...

2019-10-21 21:46:19 190

原创 设计模式之策略模式

策略模式0x01.定义与类型定义:定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化不会影响到使用算法的用户。从一系列里抽象出不变的部分策略模式是将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列算法实现,并使他们可以相互替换,从而导致客户端程序独立于算法的改变。类型:行为型0x02.适用场景系统有很多类,而他们的区别仅仅在于他们的行为不同...

2019-10-21 00:17:40 132

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

0x01.定义与类型定义:提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示。类型:行为型一般情况,我们自己开发时很少自定义迭代器,因为java本身已经把迭代器做到内部中了(比如:常用的list和set中都内置了迭代器)。当然,如果真有这种需求需要我们自定义迭代器的话,可以参考jdk的迭代器实现方式来实现自己的迭代器。迭代器是可以从前往后,或者从后往前遍历的。...

2019-10-19 14:50:14 165

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

0x01.定义与类型定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。比如定义一个操作中的算法的骨架,将步骤延迟到子类中。模板方法使得子类可以再不改变算法结构的情况下...

2019-10-16 22:32:50 128

原创 设计模式之代理模式

0x01.定义与类型定义:为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用,可去掉功能服务或增加额外的服务。类型:结构型几种代理方式:远程代理–为不同地理的对象,提供局域网代表对象—通过远程代理来模拟各个店铺的监控虚拟代理–根据需要将资源消耗很大的对象进行延迟-真正需要的时候进行创建–比如说先加载文字-图片是虚拟的-再加载...

2019-10-15 23:12:12 135

原创 设计模式之桥接模式

0x01.定义与类型定义:将抽象部分与它的具体实现部分分离,使它们都可以独立地变化。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。桥接模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用关联关系(组合或者聚合关系)而不是继承关系,从而使两者可以相对独立地变化,这就是桥接模式的用意。类型:结构型UML类图Java实现...

2019-08-18 11:25:40 170

原创 设计模式之组合模式

0x01.定义与类型定义:将对象组合成树形结构以表示“部分-整体”的层次结构,使客户端对单个对象和组合对象保持一致的方式处理组合模式实现的最关键的地方是:简单对象和复合对象必须实现相同的接口,这就是组合模式能够将组合对象和简单对象进行一致处理的原因。类型:结构型UML类图Java实现/** * 组合模式统一接口类 */public interface Component...

2019-08-11 15:15:12 187

原创 设计模式之享元模式

0x01.定义与类型定义:提供了减少对象数量从而改善应用所需的对象结构的方法,系统使用少量对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。运用共享技术有效地支持大量细粒度的对象类型:结构型享元模式的两个状态:内部状态:在享元对象内部不随外界环境改变而改变的共享部分。外部状态:随着环境的改变而改变,不能够共享的状态就是外部状态。由于享元模式区分了内部状态和外部状态,所...

2019-08-04 18:43:28 252

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

0x01.定义和类型定义:将一个类的接口转换成客户期望的另一个接口,适配器模式让那些不兼容的类可以一起工作。类型:结构型a.类适配器模式类适配器模式:使用继承的方式去实现接口适配。UML:Java实现/** * 客户需要的接口 */public interface Target { void request();}/** * 被适配的类 */p...

2019-07-27 22:37:39 190

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

0x01.定义与类型定义:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。特点:装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。装饰对象包含一个真实对象的引用(reference)装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。装饰对象可以在转...

2019-07-13 16:16:26 162

原创 设计模式之外观/门面模式

0x01.定义与类型定义:又叫门面模式,提供了一个统一的接口,用来访问子系统中的一群接口外观模式定义了一个高层接口,让子系统更容易使用类型:结构型UML类图门面模式是对系统复杂的关系处理做了一个封装,对外提供一个简单的接口,成员介绍:子系统:被门面模式封装的子系统,也是具体业务逻辑的细节facade类:门面类,对子系统执行流程进行封装,对外开放功能接口,一般为单例对象。...

2019-07-13 16:13:43 132

原创 设计模式之原型模式

0x01.定义与类型定义:指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象特点:不需要知道任何创建的细节,不调用构造函数类型:创建型UML原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚...

2019-07-13 16:12:14 342

原创 设计模式之单例模式

0x01.定义与类型定义:保证一个类仅有一个实例,并提供一个全局访问点类型:创建型UML单例模式的基本要素私有的构造方法指向自己实例的私有静态引用以自己实例为返回值的静态的公有的方法0x02.适用场景像确保任何情况下都绝对只有一个实例需要频繁实例化然后销毁的对象。创建对象时耗时过多或者耗资源过多,但又经常用到的对象。有状态的工具类对象。频繁访问数据库或文...

2019-07-13 16:10:06 170

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

0x01.定义与类型定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。用户只需指定需要建造的类型就可以得到他们,建造过程及细节不需要知道类型:创建型建造模式有两种使用方式1.抽象建造者UML:Java实现/*** 教练类,封装了具体构建的细节*/public class Coach { private AProductBu...

2019-07-13 16:06:01 153

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

0x01.定义与类型定义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口无需指定它们具体的类类型:创建型UML基本java实现/** * 工厂接口 */public interface IFactory { AProduct1 createProduct1(); AProduct2 createProduct2();}/** * 产品1...

2019-07-13 16:03:59 216

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

0x01.定义与类型定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化那个类,工厂方法让类的实例化推迟到子类中进行类型:创建型uml类图代码//工厂接口public interface IFactory { IProduct createProduct();}//产品接口public interface IProduct { void pr...

2019-07-13 16:01:37 99

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

0x01.定义与类型定义:由一个工厂对象决定创建出哪一种产品类的实例。类型:创建型,但不属于GOF23中设计模式。简介:通过一个专门的工厂类来创建其他类,这些被创建的类通常有一个共同的父类或接口。uml类图代码//产品接口public interface IProduct { void produce();}//产品实现public class Produc...

2019-07-12 16:33:32 112

原创 设计模式之软件设计七大原则

0x01.开闭原则定义:一个软件实体如类,模块和函数应该对扩展开放,对修改关闭要点:当变更发生时,不要直接修改类,而是通过继承扩展的方式完成变更用抽象构建框架,用实现扩展细节预先设计好抽象优点:提高软件系统的可复用性及可维护性面向抽象编程,实现抽象化,抽象出业务模型提高内聚,降低耦合样例代码:https://github.com/sigmako/design-patter...

2019-07-12 16:31:39 152

原创 设计模式之UML类图

类图(Class diagram)主要用于描述系统的结构化设计。类图也是最常用的UML图,用类图可以显示出类、接口以及它们之间的静态结构和关系。0x01.类图中的元素1.类 Class / 接口 Interface第一格:表示类的名字,抽象类用斜体表示,接口在前面加<interface>第二格:表示类的属性,前面符号表示作用于,冒号后面表示类的类型符号解释...

2019-07-02 22:04:05 396

原创 Spark Streaming入门

1. Spark Streaming入门1. 概述![Spark Streaming](./image/streaSpark Streaming is an extension of the core Spark API that enables scalable(Spark Streaming是基于Spark Core的扩展)high-throughput(高可用)fault-tol...

2018-10-09 22:08:25 714

原创 hadoop3.1.0 HDFS快速搭建伪分布式环境

1.环境准备CenntOS7环境 JDK1.8-并配置好环境变量下载Hadoop3.1.0二进制包到用户目录下2.安装Hadoop1.解压移动#1.解压tar.gztar -zxvf hadoop-3.1.0.tar.gz#2.将hadoop.tar.gz 移动到usr目录下sudo mv hadoop-3.1.0 /usr/hadoop2.配置Hadoop ...

2018-04-26 23:01:07 2475

原创 Security 安全框架1

security过滤器链检查请求是否有请求信息-主要校验规则UsernamePasswordAuthenticationFilter: 处理表单登录, 请求是否带用户名密码BasicAuthenticationFilter: 是否有Basic码信息, 有会进行解码认证FilterSecurityInterceptor: 最后一部, 决定当前请求能不能继续, 根据不过的原因会抛出异...

2018-04-11 14:27:55 405

原创 Spring Web Async异步处理#Callable #DeferredResult

Spring MVC 对于异步请求处理的两种方式场景: Tomcat对于主线程性能瓶颈,当Tomcat请求并发数过多时,当线程数满时,就会出现请求等待Tomcat处理,这个时候可以使用子线程处理业务逻辑,主线程只是处理返回请求,这样可以大大提高Tomcat的吞吐量。1. Callable 1. 使用Callable返回异步信息 - 对于前台用户来说,只是一个同步的请求,...

2018-04-11 13:24:53 991

原创 java.io.FileNotFoundException:file:\D:\code\xml-load\target\XX.jar!\XXX(文件名、目录名或卷标语法不正确。)

java.io.FileNotFoundException:file:\D:\code\xml-load\target\XX.jar!\XXX(文件名、目录名或卷标语法不正确。)1.当使用Spring Boot将应用打成jar时,需要读取resources目录下配置文件时,通常使用ClassLoader直接读取,通常建议使用这种方式,直接将xml文件读成流传入 // 加载xml

2018-01-18 09:45:19 3146

原创 Maven plugin插件---appassembler-maven-plugin快速配置

使用appassembler-maven-plugin 打包自定义目录1.Pom中添加 <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id>

2018-01-03 15:50:10 5014

原创 Linux 开放端口

允许防火墙开放80端口sudo firewall-cmd --zone=public --add-port=80/tcp --permanent重启防火墙sudo systemctl restart firewalld.service查看已开放的端口sudo /sbin/iptables -L -n注意,这里都需要root权限。

2017-12-27 23:20:53 301

原创 Vue directive自定义指令+canvas实现H5图片压缩上传-Base64格式

前言 最近优化项目-手机拍照图片太大,回显速度比较慢,使用了vue的自定义指令实现H5压缩上传base64格式的图片canvas自定义指令Vue.directive("canvas", { bind: function (el, binding) { // 压缩图片需要的一些元素和对象 var reader = new FileReader(), img

2017-12-01 21:58:22 1128

原创 Django templates加载css/js/image等静态资源

配置步骤:首先在应用下面创建static目录将静态资源拷贝进去在应用的settings.py文件中添加import osBASE_PATH = os.path.dirname(os.path.abspath(__file__))BASE_PATH = os.path.join(BASE_PATH, '../')# 静态资源目录STATICFILES_DIRS = ( os.pa

2017-10-14 22:30:50 1837 2

原创 python django-admin startproject django-admin命令未找到

在使用pip install安装django后使用django-admin生成项目失败解决办法1.配置环境变量-在系统环境变量path添加后运行 D:\Program Files (x86)\python\Lib\site-packages\django\bin2.拷贝/bin目录下的django-admin.py到想要生成的目录下,运行 python django-admin.py

2017-10-11 23:10:36 4368

原创 Dubbo client 启动报错:No provider available for the service use dubbo version 2.5.3

1.异常java.lang.IllegalStateException: Failed to check the status of the service org.ko.server.service.UserService. No provider available for the service org.ko.server.service.UserService:1.0.2 from the

2017-09-29 22:07:16 2259

原创 SVN错误记录

1.SVN错误:Attempted to lock an already-locked dir发生这个错误多是中断提交导致了,执行clear后可修复邮件项目--->team--->清理--->完成--->如果没好建议换父级目录重试2.

2017-09-28 09:51:38 339 1

原创 关于选择排序和快速排序--2017-09-24

1.前言因为开始习惯使用印象笔记,所以好久没更新博客了,以后会计划每月固定整理四篇博客,一方面锻炼下写作能力,同时希望能够帮到别人。#####大概从基础开始把-算法数据结构到源码解析-暂时就这样定了。2.关于算法的重要性首先,其实现在大多数算法的实现都被封装的差不多,除了一些大公司面试会问到,工作用暂时需要的还不多,对于一个有志向向上发展的算法和数据结构这种基础是很重要了,不废话了,进入正题。

2017-09-24 22:35:30 532

原创 Spring quantz--定时任务调度工具

1.在xml中交给spring管理的一些类<bean id="cancelOrderJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="orderJob"/> <pr

2017-07-09 19:55:59 522

原创 Java使用zxing生成解读QRcode二维码

1.maven的pom配置jar包,如果不实用maven请手动下载jar包<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version></dependency>2.生成二维码图片public static void main(

2017-07-09 19:47:22 323

空空如也

空空如也

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

TA关注的人

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