- 博客(18)
- 收藏
- 关注
原创 简述设计模式(七)——装饰模式
为何使用装饰模式在软件开发过程中,当对系统扩展功能时,希望复用当前系统中已存在现存组件,并对其进行动态扩展以实现新功能。此时,在不修改现存组件的情况下,同时对这些组件进行复用扩展。举个例子,手机本身具备照相功能,但画质感人,爱美的人都希望在拍照的同时具有美化效果,因此,扩展出滤镜、瘦脸等功能。针对这个例子,来看看是否采用装饰模式的方式之间的区别:不采用装饰模式;重复创建类,会导致类爆炸;...
2020-05-06 19:28:51 274
原创 简述设计模式(六)——桥接模式
问题当一个类存在多个维度,并不同维度的改变都会衍生出一个新的子类。举个例子:形状类,其下有不同的图形,如三角形、正方形、圆形等等;此外,这些不同的形状还有不同颜色。如果使用传统的继承的方式的结构是这样的:使用这种结构实现,存在以下缺点:可扩展性差,存在类爆炸问题,增加维护成本;类的重复度高,违背单一职责原则;**解决方案:**桥接模式。那么接下来先来了解桥接模式。桥接模式桥接模...
2020-05-05 23:23:54 389
原创 简述设计模式(五)——适配器模式
什么是适配器模式?先举个现实生活中的案例:手机充电。因为手机充电接口(目标接口)和插座接口(适配者)不匹配,不能够直接充电,就需要使用到充电器(适配器)进行接口转换。在软件设计中也存在类似的情况:在开发某个业务功能的组件,已在其它项目中存在,但因为与当前系统的接口规范不匹配而无法直接使用,如果重新开发会导致成本很高,使用适配器模式就可以很好地解决此类问题。适配器模式的定义:将一个类的接口转换...
2020-05-04 20:00:46 355
原创 简述设计模式(四)——建造者模式
建造者模式,是一种创建型模式。它将复杂对象的属性和构建行为分离开,使用抽象方式实现不同的构造过程,以此构造出不同表现(属性)的对象。建造者模式是一步一步创建一个复杂的对象,它允许客户端只通过指定复杂对象的类型和内容,无需知道内部的具体构建细节,就可以构建对象。建造者模式的四个角色产品角色:一个具体的产品对象;抽象建造者:定义构建对象过程的接口或抽象类;具体建造者:实现抽象建造者,构建对...
2020-05-03 09:44:49 424
原创 简述设计模式(三)——原型模式
原型模式:用一个已经创建的实例作为原型,将对象作为一个原型来创建一个和新的一模一样的对象。在这里,原型实例指定了要创建的对象。用这种方式创建对象较高效,且无须知道对象创建的细节。Java提供了对象的clone()方法,使得原型模式的实现非常简单。原型模式的实现类型有:浅拷贝和深拷贝。1、浅拷贝对象的成员变量类型可以是基本数据类型,也可以是引用类型;进行对象拷贝时,对基本数据类型的成员变量的值...
2020-05-02 08:30:58 233
原创 简述设计模式(二)——工厂方法和抽象工厂模式
1、简单工厂简单工厂模式是由一个工厂对象决定创建哪一种产品类的实例。使用工厂类封装了创建产品类实例对象的行为,用户只需告诉工厂类获取哪个实例,工厂类创建并返回用户所需的实例。代码实现//产品接口public interface Fruit { public void show();}//产品1public class Apple implements Fruit { ...
2020-05-01 09:19:05 252
原创 简述设计模式(一)——单例模式
单例模式单例模式,保证整个软件系统中,对某个类只能创建一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式的实现方式有:立即加载(饿汉式):即项目启动时即加载;懒加载(懒汉式):在项目使用到时才进行加载;在实现单例模式时,需要考虑线程安全问题,因为线程不安全情况下会生成多个对象,就失去单例模式的效果;实现方式1、饿汉式静态变量方式实现。给该静态变量赋值的方式可以有两种...
2020-04-30 08:38:41 192
原创 Linux基础参考全文
Linux基础参考本文涉及的更多是Linux下的使用命令,可作为参考使用,如果是想学习Linux,那这篇文章可能不太适应。适合有一定基础的朋友。如有错误之处,希望朋友们在评论处指出,谢谢翻阅!!!1、注意事项Linux的命令和文件名严格区分大小写;Linux中所有内容以文件形式保存,包括硬件;硬盘文件是.dev.sd[a-p]、光盘文件是/dev/sr0;Linux中命令行对...
2020-04-27 08:55:27 2304
原创 CentOS7安装Redis-5.0.8
CentOS7安装Redis-5.0.8Linux下安装# Redis环境依赖yum install gcc-c++# 在线下载安装包wget http://download.redis.io/releases/redis-5.0.8.tar.gz# 解压安装包tar -xzf redis-5.0.8.tar.gzcd redis-5.0.8# 编译安装make &...
2020-04-23 20:43:20 590
原创 CentOS7安装Nginx-1.16
CentOS7安装Nginx-1.16Nginx是一个高性能的Web和反向代理服务器,它具备以下特性:作为Web服务器:Nginx使用更少的资源,支持更多并发连接,能够支持高达5万个并发连接数响应;作为负载均衡服务器:内部直接支持Rails和PHP,可以作为 HTTP代理服务器对外进行服务。使用C语言编写,在系统资源开销或CPU使用效率都比Perlbal好得多;作为邮件代理服务器配置...
2020-04-23 20:41:17 258
原创 CentOS7安装单机FastDFS
CentOS7安装单机FastDFS前言此文用于记录自己在本机的虚拟机上安装FastDFS的过程,以便查阅。安装前,需要下载安装文件,下载地址为:https://github.com/happyfish100。下载以下三个文件:fasdfs、libfastcommon以及fastdfs-nginx-module,传输到/opt目录下。fastdfs安装解压文件到/usr/local/,...
2020-04-23 20:36:47 236
原创 CentOS7下安装ElasticSearch 6.8
CentOS7下安装ES 7.3.1下载之前,请确定你系统的JDK版本,查看网址,官网下载Elasticsearch软件,以及Ik分词器下载。下载好这两个软件后Elasticsearch默认是不允许在root用户下进行安装的,在安装之前,应创建一个用户;# 创建用户useradd chan# 设置密码1046038018passwd chan# 切换用户su - chan创...
2020-04-23 20:34:38 1754
原创 虚拟机CentOS 7安装RabbitMQ
虚拟机CentOS 7安装RabbitMQ1、安装erlang环境RabbitMQ是基于erlang语言开发,因此要先安装erlang。安装erlang环境依赖yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel在线下载er...
2020-04-23 20:30:58 1074
转载 Spring Boot中Date类型出现JSON解析错误问题
问题描述:在搭建Spring Boot项目时,客户端传输JSON包含日期数据,日期格式为:yyyy-MM-dd HH:mm,测试调用时报如下错误:{ "timestamp": "2020-04-21T08:39:21.810+0000", "status": 400, "error": "Bad Request", "message": "JSON parse error: C...
2020-04-21 16:53:56 2773
原创 MySQL事务(四)——学习笔记
事务事务是一组原子性的SQL语句,它是数据库操作的基本单元。事务内的SQL语句,要么全部执行,要么全部执行失败。MySQL中定义一组事务START TRANSACTION; SELECT ...; UPDATE ...; INSERT INTO ...; DELETE ...;COMMIT | ROLLBACK;查看事务隔离级别:SELECT @@tx_isolation;设...
2020-04-21 13:59:28 151
原创 MySQL多表连接(三)——学习笔记
多表连接多表查询:当查询的数据并不是来源一个表时,需要使用多表连接操作完成查询。根据不同表中的数据之间的关系查询相关联的数据。多表连接类型:内连接连接两个表,通过相等或不等判断连接列,称为内连接。在内连接中典型的链接运算符有:**=或者<>**之类的比较运算符。包括等值连接和自然连接。等值连接:对两个表中的不同列进行相等的判断;非等值连接:除相等判断以外的连接;...
2020-04-21 12:27:51 423
原创 MySQL基础(一)——学习笔记
MySQL——表操作前面笔记说过,表的操作有创建、删除以及更新。那么今天,就具体的了解一下。在对数据进行处理之前,我们应该先掌握如何创建数据库——用来存储包含数据的表。此章节内容的练习部分是在命令提示符内执行,命令提示符中进入MySQL客户端的方法如下:win + r —— 输入cmd回车 —— 输入mysql -h主机名 -u用户名 -p 就进入MySQL。mysql -hloca...
2019-04-05 14:14:58 472
原创 MYSQL基础(二)——学习笔记
SQL笔记本笔记是根据SQL基础教程(MICK第2版)的学习笔记。粗略的记录了该书第二章到第七章的基础内容。后续会继续更新。DDL(Database Definition Language,数据定义语言)数据库和表的创建创建数据库:CREATE DATABASE 数据库名称表的创建 :CREATE TABLE 表名表内容的创建: CREATE TABLE 表名 (列名...
2019-03-20 15:30:31 659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人