适配器模式 目录https://blog.csdn.net/dongganen/article/details/79688794定义适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。案例分析小兔子搞了一个群羊party,邀请所有镇上的羊来参加,大灰狼也想来,那他该怎么办呢?代码实现public class Pa...
命令模式 目录https://blog.csdn.net/dongganen/article/details/79688794定义命令模式将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其它对象。命令模式也可以支持撤销模式。案例分析有一家很好吃的饭店,饭店聘用了很多的厨师,每当6点之后会有很多的顾客来吃饭。逻辑很简单就是:顾客点餐,厨师做菜。...
单例模式 定义单例模式面试几乎必问确保一个类只有一个实例,并提供一个全局访问点。案例分析在实际开发过程中我们就经常遇到单例模式,比如Spring容器里的对象默认作用域就是单例的,还有就是线程池、缓存等,我们经常在登录的时候把用户的信息保存在缓存里,在我们下次需要用户信息的时候,不需要再向用户去获取信息,而是从缓存中获取,当然了缓存是客户端的,当缓存有多个的时候,就会出现很多的问题。我在实际开发过程中最多使用
抽象工厂模式 目录https://blog.csdn.net/dongganen/article/details/79688794定义抽象工厂提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。案例分析我很喜欢一道菜叫蛋炒饭,蛋炒饭是由蛋和饭组成的,假设宁波蛋炒饭是由鸡蛋A和米饭A炒,上海蛋炒饭有鸡蛋B和米饭B炒。硬编码实现class Ha...
工厂模式 目录https://blog.csdn.net/dongganen/article/details/79688794定义工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。案例分析最近听说有个阿里程序员相亲穿特步被拒,苦逼单身码农小明同学这周也有个相亲,所以他得赶紧买双新鞋,而且要买Adidas或Nike(这样可能不会上来就被灭灯)。代码实现//工
装饰者模式 目录https://blog.csdn.net/dongganen/article/details/79688794定义装饰者模式装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。案例分析楼下新开了一家牛肉面店,有牛肉面15块,羊肉面20块,海鲜面25块,另外加荷包蛋3块,面结5块,豆腐4块,香菜1块。硬编码,使...
观察者模式 目录https://blog.csdn.net/dongganen/article/details/79688794定义观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动跟新。案例分析我们家楼下有一个宁波日报的订阅点。宁波只要发生什么大事,就会出现在他们的报纸上你订阅了他们的报纸,你就会收到报纸。哪天你不...
策略模式 目录https://blog.csdn.net/dongganen/article/details/79688794定义策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。案例分析前几天看到一个新闻,国家要提高税收线,真是利国利民。作为一个中国公民我们应该依法缴税。使用继承代码//中国...
23种设计模式汇总 在接触设计模式之后,我才知道太好用啦,我以前做的项目经常会改需求和功能扩展,我发现很多都是我硬编码在里面导致修改起来很烦 超级烦,在接触设计模式之后才发现他的威力,我想把整个23种模式整理一遍,当然了在我们了解设计模式之后对我们看源码会有很大的帮助面向对象是什么?面向对象是一种思想, 世间万物都可以看做一个对象,面向对象编程(OOP) Java是一个支持并发、基于类和面向对象...
springboot搭建简单ssm框架 1 设置项目启动 pom.xml文件添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>
优化数据库 1. 什么是数据库索引 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所用的行相比,索引有助于更快地获取信息。 索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。 现在我写一个存储过程,往数据库tb_person...
读写分离 - 动态切换数据源 1 认识AbstractRoutingDataSource抽象类 这个抽象类是我们实现动态切换数据源的关键,从它的名字我们可以知道是路由数据源 从源码我们可以很清楚的知道我们覆盖方法determineCurrentLookupKey(),动态地把lookupKey传进去,resolvedDataSources是map类型是key - value类型,key存着lookupK
mysql主从配置 环境 本地数据库:192.168.0.136 虚拟机数据库:192.168.0.161原理 主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。1配置master服务器 1.1修改配置文件 [mysqld] log-bin=mysql-bin #启动二进制日志log-bin
mysql常用命令 1.windows服务下删除mysql服务 sc delete mysql2.创建mysql用户 create user ‘dong’3.设置用户权限和基本信息 GRANT REPLICATION SLAVE ON . TO ‘dong’@’192.168.0.%’ IDENTIFIED BY ‘123456’; 4.查看用户信息 select h...
解压安装mysql 1.把安装包解压到指定的文件夹2.配置环境变量 %MYSQL_HOME%,添加到path下3.然后在安装目录下新建文件my.ini(目录最好是E://这种格式)[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[mysqld]sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZE
linux安装redis cd /home/dong 目录下上传tar.gz文件解压tar -zxvf redis.tar.gz编译makecd srcmkdir /usr/local/rediscp redis-cli redis-service /usr/local/rediscd ..cp redis.conf /usr/local/rediscd /usr/local/redis修改配置文件
redis常用命令 redis命令 1.keys键操作 exists key 测试指定key是否存在 del key1 key2….keyN 删除指定key type key 返回指定key的value类型 keys pattern 返回指定模式的所有key r