自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Horace's Blog

博客:https://www.zhaohaihao.com

原创 Java设计模式之行为型-状态模式 (State)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 当一个对象的内在状态改变时允许改变其行为。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。可以将状态的判断逻辑转移到表示不同状态的一系列类当中,从而简化复杂的判断逻辑。 三个角色...

2020-03-03 23:27:23 59 0

原创 Java设计模式之行为型-访问者模式 (Visitor)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改,接受这个操作的数据结构可以保持不变。 访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于数据结构上的操作之间的耦合解脱开,使得操...

2020-03-03 18:03:15 82 0

原创 Java设计模式之行为型-责任链模式 (Chain of Responsibility)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 使多个对象都有机会去处理请求。从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 责任链模式也叫做职责链模式。 三个角色 责任链模式主要...

2020-03-03 15:54:04 130 0

原创 Java设计模式之行为型-中介者模式 (Mediator)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 四个角色 中介者模式主要有以下四个角色: 抽象中介者Mediator:提...

2020-03-03 13:23:24 59 0

原创 Java设计模式之行为型-命令模式 (Command)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 四个角色 命令模式主要有以下四个角色: 抽象命令类Command:声明执行操作的接口。 具体命令类Concrete Command:...

2020-03-02 17:23:04 47 0

原创 Java设计模式之行为型-备忘录模式 (Memento)

行为型-备忘录模式 (Memento) ????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并且在该对象之外保存这个状态,从而可以在将来合适的时候把这个对象还原到之前保存的状态。 备忘录模式也叫快照模式。 ...

2020-03-02 12:10:28 58 0

原创 Java设计模式之行为型-观察者模式 (Observer)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者(观察者)都会收到通知并且自动更新。 观察者模式提供了一种对象设计,让观察者和被观察者(主题)之间松耦合。 四个角色 观察者模式...

2020-03-02 00:09:11 210 0

原创 Java设计模式之行为型-解释器模式 (Interpreter)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 定义中提到的文法和句子的概念同编译原理中的描述相同,“文法”指的语言的语法规则,而“句子”是指语言集中的...

2020-03-01 19:24:11 37 0

原创 Java设计模式之行为型-策略模式 (Strategy)
原力计划

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 三个角色 策略模式中主要有三个角色: 抽象策略类Strategy:定义所有支持的算法的公共接口,可...

2020-02-28 17:59:28 65 0

原创 Java设计模式之行为型-迭代器模式 (Iterator)
原力计划

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 四个角色 迭代器模式主要有以下四个角色: 抽象聚合角色Aggregate:定义存储、添加、删除聚合对象以及创建迭代器对象的接口。...

2020-02-28 15:47:15 55 0

原创 Java设计模式之行为型-模板方法模式 (Template Method)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 定义一个算法的步骤,并允许子类为一个或者多个步骤提供实现。 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 场景示例 笔者这里以做番茄炒蛋为例。笔者将做番茄炒蛋的步骤分为以下几...

2020-02-27 16:42:42 49 0

原创 Java设计模式之结构型-代理模式 (Proxy)
原力计划

结构型-代理模式 (Proxy) ????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 为其他对象提供一种代理用来控制对这个对象的访问。 在代理模式中,代理对象作为访问对象和目标对象之间的中介。 场景示例 笔者这里以购买火车票为例。我们购买火车票不一定要去...

2020-02-26 23:31:08 189 0

原创 Java设计模式之结构型-桥接模式 (Bridge)

结构型-桥接模式 (Bridge) ????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 将抽象部分与它的具体实现部分分离,使它们都可以独立地变化。 桥接模式是通过组合的方式建立两个类之间的联系,而不是通过继承。 四个角色 桥接模式中主要有以下四个角色: ...

2020-02-26 15:47:07 54 0

原创 Java设计模式之结构型-组合模式 (Composite)

结构型-组合模式 (Composite) ????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 将对象组合成树形结构以表示“部分-整体”的层次结构。 组合模式使得用户对单个对象和组合对象的使用具有一致性。 模式中的角色 抽象构件Component:为组合...

2020-02-22 17:03:34 53 0

原创 Java设计模式之结构型-享元模式 (Flyweight)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 运用共享技术有效地支持大量细粒度的对象。 “享”即共享,“元”指的是元件,也就是小颗粒的东西。“享元”顾名思义就是共享小部件。 很多的系统程序包含大量的对象,但是这些对象绝大多数都是差不多的,除了一些极...

2020-02-16 23:41:00 39 0

原创 Java设计模式之结构型-适配器模式 (Adapter)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 将一个类的接口转换成客户端期望的另一个接口。 适配器模式可以使原本接口不兼容的类可以一起工作。 两种模式 适配器模式有两种模式: 对象适配器:采用组合方式进行类的委托 类适配器:采用继承方式 三种角...

2020-02-14 19:21:22 109 0

原创 Java设计模式之结构型-装饰器模式 (Decorator)

????文章示例代码???? 装饰器模式对于笔者来说,印象还是比较深刻的。因为当年笔者考软件设计师的设计模式大题考的就是这个模式,差点阵亡。 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 动态地为一个对象添加一些额外的职责。 在扩展原有对象功能上,装饰器模式比继承的方式更加灵活...

2020-02-14 00:52:22 45 0

原创 Java设计模式之结构型-外观模式 (Facade)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式又叫门面模式,是符合迪米特法则的。 场景示例 作为一个病人去医院看病,可能需要经过挂号、门...

2020-02-13 17:13:17 61 0

原创 Java设计模式之创建型-原型模式 (Prototype)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式不需要知道任何创建的细节,也不调用构造函数。 三个基本步骤 原型模式的核心在于原型类,而满足原型模式的原型类需要进行以下三个步骤...

2020-02-13 11:53:40 47 0

原创 Java设计模式之创建型-单例模式 (Singleton)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 保证一个类有且仅有一个实例,并且提供一个可以访问它的全局访问点。 三个基本步骤 实现单例模式有三个基本的步骤: 私有构造方法用来限制外部类对其直接实例化 提供一个私有静态当前类的对象作为变量 提供一个...

2020-02-12 18:07:03 52 0

原创 Java设计模式之创建型-建造者模式 (Builder)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道。 建造者模式注重于方法的调用顺序,而工厂模式注重于创建产品...

2020-02-12 15:03:22 48 0

原创 Java设计模式之创建型-抽象工厂模式 (Abstract Factory)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 提提供一个创建一系列相关或者相互依赖对象的接口,无须指定他们的具体的类,从而创建多个产品族中的产品对象。 在讲抽象工厂模式之前,这里先引入两个概念,以便更好地了解抽象工厂模式(以下用工厂方法模式中的示例...

2020-02-12 15:01:11 38 0

原创 Java设计模式之创建型-工厂方法模式 (Factory Method)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。 工厂方法模式让类的实例化推迟到子类中进行。 场景示例 笔者这里通过简单工厂模式中示例的演变来进行讲解。 /** * @author z...

2020-02-12 14:58:52 58 0

原创 Java设计模式之创建型-简单工厂模式 (Simple Factory)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 一个工厂方法,根据传入的不同参数,生成对应的具体实例化对象。 简单工厂属于创建性模式,但是其不属于GOF23种设计模式 场景示例 假设笔者拥有很多品牌的手机(虽然笔者没有),这里以笔者选择品牌手机打电话...

2020-02-12 14:55:51 51 0

原创 Java设计模式之设计原则-合成复用原则 (CRP)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 尽量使用对象组合(contains-A)/聚合(has-A),而不是通过继承(is-A)达到软件复用的目的。 类的复用一般分为两种:一种是组合/聚合,另一种则是继承。 继承复用的优点在于扩展性较好,子类...

2020-02-12 14:52:28 105 0

原创 Java设计模式之设计原则-里氏替换原则 (LSP)

附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 任何基类可以出现的地方,子类一定可以出现。 里氏替换原则是继承复用的基石,只有当子类可以替换掉基类且软件单位的功能不受到影响的时候,基类才能真正被复用,而子类也能够在基类的基础上去增加新的行为。 里氏替换原则通俗点来说就是:子类可以...

2020-02-12 14:49:40 43 0

原创 Java设计模式之设计原则-迪米特法则 (LoD)

????文章示例代码???? 迪米特法则也叫做最少知道原则。 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 一个对象应该对其他对象保持最少的了解。 在《Head First 设计模式》一书中,针对该原则也强调:只和你的密友交流。 在程序中,出现在成员变量、方法的输入、输出参数中...

2020-02-12 14:45:34 36 0

原创 Java设计模式之设计原则-接口隔离原则 (ISP)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 用多个专门的接口,而不使用单一的总接口,客户端不应该被迫依赖于它不使用的方法。 注意点 一个类对另一个类的依赖应该建立在最小的接口上 建立单一接口,不要建立一个庞大臃肿的接口 尽量细化接口,接口中的方...

2020-02-12 14:42:07 47 0

原创 Java设计模式之设计原则-单一职责原则 (SRP)

????文章示例代码???? 附链 你也可以在这些平台阅读本文: 语雀 个人博客 定义 就一个类而言,有且仅有一个引起它变更的原因。 一个类/接口/方法只负责一项职责。 如何理解 假设有个 A 类负责职责1和职责2两个职责。 当需求发生变更时,比方说职责1相关的功能需要发生改变,那我们在修...

2020-02-12 14:37:49 33 0

原创 Java设计模式之设计原则-依赖倒置原则 (DIP)

????文章示例代码???? 定义 高层模块不应该依赖底层模块,二者都应该依赖其抽象。 抽象不应该依赖细节,细节应该依赖抽象。 针对接口编程,而不要针对实现编程。 场景示例 假设笔者现在要去超市购物,需要买点可乐和薯片。这一过程笔者分别用面向实现和面向过程两种方式进行实现。 面向实现编程 创建...

2020-02-12 14:29:44 29 0

原创 Java设计模式之设计原则-开闭原则 (OCP)

设计原则-开闭原则 (OCP) ????文章示例代码???? 定义 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 开闭原则强调的是用抽象构建框架,用实现来扩展细节。 场景示例 笔者这里以超市中的商品做一个简单的示例来方便理解。 创建商品接口 首先创建一个商品接口,同时在接口内部定义...

2020-02-12 14:02:43 84 0

原创 【Java】手机号校验与脱敏处理

背景 前不久,博主刚刚通过阿里巴巴编码规范(Java)认证,其中的安全规约当中强制规定:用户敏感数据禁止直接展示,必须对展示数据进行脱敏。 以博主所在小团队最近正在开发的小程序为例:针对用户手机号的展示,隐藏中间4位,防止隐私泄露。如下图所示: 图1 由于手机只做展示作用,为安全起见,博主...

2018-12-29 12:43:24 3383 0

原创 【调试工具】ngrok的安装与使用

什么是ngrok? ngrok 是一个反向代理工具,通过公共的端点和本地运行的WEB服务器在两者之间建立一个安全的通道。同时,ngrok 还可以捕获、分析所有通道上的流量,便于后期的分析与重放。 为什么要使用ngrok? 在项目开发的过程当中,我们通常会遇到这样的场景:需要临时地将本地的服务...

2018-12-26 11:04:23 100 0

原创 【Java】代码结构设计思考

背景 这篇博文是博主在做数据图形统计相关接口工作过程中对代码结构设计的一些思考总结,仅代表个人观点。 1.需求简述 提供资金关系数据图形统计,根据不同菜单地址跳转至对应图形页面显示相关业务统计数据。 2.开发设计过程 2.1 在开发的初期,考虑到各个数据图形统计具体实现细节的不同,以及代...

2018-12-11 13:07:45 694 0

原创 【Java】阿里云短信发送功能实现

前言 在移动端我们除了使用账号密码、第三方社交平台账号(例如:微信、QQ、微博等)这几种登录方式以外,也会通过手机短信验证码的方式来做登录。 博主最近正在做移动端的手机短信验证登录。原本为了简单起见,选用的是某个不知名科技公司的短信服务,但是收费贵,服务也不太稳定等一系列问题,博主就开始另寻他...

2018-11-22 19:54:23 667 0

原创 【SpringBoot】集成JWT实现用户认证

初识JWT 1.什么是JWT JSON Web Token (JWT) 是一个开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,可以在客户端与服务器之间作为JSON对象安全地传输信息。 2.JWT使用场景 身份验证: 用户在登录以后,后续的每个请求都将包含JWT,允许用户访...

2018-11-16 14:20:29 3292 4

原创 【Git】Git常用命令汇总整理(未完待更)

说明:蓝色字体(包括表格内容、标题)用作锚点方便详情跳转与回跳 Git 常用命令 命令 简要说明 git add 添加至暂存区 git branch 分支管理 git checkout 检出到工作区、切换或创建分支 git ...

2018-09-04 19:41:12 204 2

原创 【Git】Git 与 SVN 的区别概述

  日常工作中,经常会用到版本控制工具,目前用到的比较广泛的版本控制工具就是 SVN 和 Git 。这里对两者的区别做个简单概述。 定义   SVN:是一个远程集中式的版本控制系统,与 RCS、CVS 比较来说,SVN 采用了分支管理系统,其设计的目的是为了取代 CVS 。   G...

2018-09-04 16:09:47 4330 2

原创 【Linux】执行 service iptables save 命令异常解决

遇到问题   博主在 CentOS7 安装 Redis 的过程中,使用 iptables 命令添加完 iptables规则以后,需要保存规则永久生效,当执行 service iptables save 命令时提示以下错误信息:    解决方案   遇到此问题是因为没有安装 iptables...

2018-06-27 17:08:22 1565 1

原创 【MySQL】Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 异常解决

前言   最近给公司某系统公众号端开发新功能,其中涉及到的一个功能点就是要分组查询每个强电井最新的一条记录,考虑到代码量和代码的复杂度,我直接使用了MySQL中的组内查询,在本地测试运行程序可行,但当部署到测试服务器时出现了异常,拉取测试服务器日志出现以下异常:    产生异常的原因就是所写...

2018-06-04 14:46:55 227 0

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