- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 Java 设计模式之状态模式
(一)了解状态模式1.1什么是状态模式状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它自己的类。状态模式将状态封装为独立的类,并将动作委托到代表当前状态的对象。1.2状态模式组成结构上下文(Context):用户对象,拥有(聚合)一个State类型的成员,以标识对象的当前状态。抽象状态(State):接口或基类,封装与Context的特定状态相关的行为。
2018-01-31 12:12:51
564
原创 Java 设计模式之组合模式
(一)了解组合模式1.1什么是组合模式组合模式允许你将对象组合成树形结构来表现“整体/部分”层次机构。组合能够使客户以一致的方式处理个别对象以及组合对象。组合模式让我们能够用树形方式创建对象的结构,树里面包含了组合以及个别的对象。使用组合结构,我们能够把相同的操作应用在组合和个别对象上。换句话说,在大多数情况下,我们可以忽略对象组合和个别对象之间的差别。1.2组合模式组成结构
2018-01-30 14:46:38
682
原创 Java 设计模式之迭代器模式
(一)了解迭代器模式1.1什么是迭代器模式迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。迭代器模式把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也可以让责任各得其所。1.2迭代器模式组成结构迭代器(Iterator):迭代器定义访问和遍历元素的接口。具体迭代器(ConcreteIterator):具体迭代器实现迭代器接
2018-01-29 10:41:30
5438
1
原创 Java 设计模式之模板方法模式
(一)了解模板方法模式1.1什么是模板方法模式模板方法模式Template Method Parrern)在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义方法中的某些步骤。模板就是一个方法,更具体的说,这个方法将算法定义为一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以确保算法的结构保持不变,同时由子类提供
2018-01-27 15:18:09
668
原创 Java 设计模式之外观模式
(一)了解外观模式1.1什么是外观模式外观模式(Facade Pattern)提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。想要使用外观模式,我们需要创建一个接口来简化和统一包装一个子系统的一个或多个类。外观模式允许我们让客户和子系统之间避免紧耦合。1.2外观模式的组成结构客户(Client):通过调用Facede来完成要实现的...
2018-01-26 11:26:31
731
原创 Java 设计模式之适配器模式
(一)了解适配器模式1.1什么是适配器模式适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。适配器模式有两种:“对象”适配器和“类”适配器。这个模式可以通过创建适配器进行接口转换,让不兼容的接口变得兼容。这可以让客户从实现的接口解耦。如果在一段时间之后,我们想要改变接口,适配器可以将改变的部分封装起来,客户就不必为了应对不同的接口而每次跟着修
2018-01-25 15:07:26
580
原创 Java 设计模式之命令模式
(一)了解命令模式1.1什么是命令模式 命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。这种说法比较难以理解,换种说法就是指:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者
2018-01-25 10:12:35
554
原创 Java 设计模式之单例模式
在《Head First 设计模式》一书中,将单例模式称作单件模式。这里为了适应大环境,把它称之为大家更熟悉的单例模式。(一)了解单例模式1.1什么是单例模式单例模式确保一个类只有一个实例,并提供一个安全访问点。我们把某个类设计成自己管理的一个单独实例,同时也避免其他类再自行产生实例。想要获取单例实例,通过单例类是唯一的途径。单例类提供对这个实例的全局访问点:当你需要实例时,向...
2018-01-23 15:28:46
516
原创 Java 设计模式之工厂模式
*写在前面这篇博文介绍设计模式的形式将与其他篇博文不太一样,这里我们将从一个问题入手,逐步了解到简单工厂、工厂方法与抽象工厂模式。PS:这篇博文涉及的内容较多,所以篇幅有点长,请耐心阅读。*为什么要使用工厂模式?在OO 设计中,有一个重要的设计原则:针对接口编程而不针对实现编程。每当我们使用new 去实例化一个对象时,用到的就是实现编程,而不是接口。这样以来代码绑定着具体类,会导致
2018-01-22 16:05:06
754
原创 Java 设计模式之装饰者模式
(一)了解装饰者模式1.1什么是装饰者模式装饰者模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰者来包裹真实的对象。所以装饰者可以动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的方案。1.2装饰者模式组成结构抽象构件(Component):给出抽象接口或抽象类,以规范准备接收附加功能的对象。具
2018-01-20 17:17:41
685
原创 Java 设计模式之观察者模式
(一)了解观察者模式 1.1什么是观察者模式观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象状态改变时,它的所有依赖者都会收到通知并自动更新。典型的问题比如报社,只要你是他们的订户,他们每次有新报纸出版时,就会向你这送来,当你不想要看报纸时,取消订阅,他们就不会再给你送报纸。1.2观察者模式组成结构抽象主题(Subject):抽象主题角色把所有观察者对象保存在一个集
2018-01-19 17:46:35
651
原创 Java 设计模式之策略模式
(一)了解策略模式1.1什么是策略模式策略模式(Strategy Pattern)是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。此模式让算法的变化独立于使用算法的客户。1.2策略模式组成结构环境(Context):持有一个策略类的引用,最终给客户端调用。抽象策略(Strategy): 策略类,通常是一个接口或者抽象类。具体策略(ConcreteSt
2018-01-16 22:18:57
875
2
原创 Servlet 过滤器
一、Filter 概述Filter 也称之为过滤器,它是Servlet 技术中很实用的一个知识点,Web 开发人员通过Filter 技术,对Web 服务器管理的所有Web 资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL 级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。Servlet API中提供...
2018-01-13 13:37:30
639
原创 Servlet 监听器
可参考博文:Session 的钝化与活化(一)Servlet 中的作用域总结 趁着这个知识点顺便把Servlet 中的四大作用域也在这篇博文中总结一下。application域(ServletContext)作用范围:在整个Web 应用范围内共享数据 (所有用户)生命周期:当服务器启动,Web 应用被加载后创建ServletContext 对象,域产生,当被移出W
2018-01-12 17:07:15
908
原创 Session 的钝化与活化
(一)钝化当服务器正常关闭时,还存活着的session(在设置时间内没有销毁) 会随着服务器的关闭被以文件(“SESSIONS.ser”)的形式存储在tomcat 的work 目录下,这个过程叫做Session 的钝化。(二)活化当服务器再次正常开启时,服务器会找到之前的“SESSIONS.ser” 文件,从中恢复之前保存起来的Session 对象,这个过程叫做Session的活化。
2018-01-12 10:16:09
12617
10
原创 Servlet 编程基础
可参考博文 超文本传输协议HTTP。Servlet 概述Servlet(Server Applet)是Java Servlet 的简称,称为小服务程序或服务连接器,用Java 编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web 内容。从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下Servlet 只用来扩展基于HTTP 协议的Web 服务器。HT...
2018-01-09 20:47:09
842
原创 超文本传输协议HTTP
在了解HTTP 协议之前需要先了解一些其他的概念,了解它们之间的关系才能更好的理解HTTP 协议。 内容偏于理论知识,理解起来可能不是很容易,所以在阅读之前希望带着以下几个问题,增加阅读的兴趣。 为什么计算机可以访问其他不同的站点来获得丰富的信息?(万维网) 万维网工作需要解决的问题?(URL、HTTP、HTML) 统一资源定位符URL如何实现对资源的定位?URL 的一般格式...
2018-01-08 14:14:34
23435
2
转载 互联网协议入门(二)
原文地址:点击打开链接上文:点击打开链接互联网协议入门(二)作者:阮一峰七、一个小结先对前面的内容,做一个小结。我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:发送这个包,需要知道两个地址: * 对方的MAC地址 * 对方的IP地址...
2018-01-07 21:26:24
268
原创 虚拟机类加载机制
(一)类加载时机类生命周期的七个阶段类从被加载进虚拟内存开始,到卸载出内存为止,整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备和解析3个阶段统称为连接(Linking),这7个阶段发生的顺序
2018-01-04 21:10:02
612
原创 Redis哨兵机制
一、什么是哨兵模式我们知道Redis 在一个主库在对应多个从库的情况下,如果主库出了故障,那么所有的从库都会等待主库恢复,所这种情况是很危险的。哨兵模式是指如果主库出了故障,那么后台监控能够检查出该问题,从而在众多对应的从库中进行投票,产生新的主库,其余原主库的从库都会连接该主库,而不再与之前的主库相连接。二、哨兵模式应用因为是在一个虚拟机中进行演示,所以准备了三个Redis 服务,修...
2018-01-03 15:34:50
969
原创 Redis主从复制
一、主从复制1.1什么是Redis 主从复制主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。Redis 主从复制可以实现读写分离与容灾恢复。1.2主库与从库配置原则:配从(库)不配主(库) 从库配置:slaveof 主库IP 主库端口1.3主从案例完成主从复制需要多台主机,因为是在一台虚拟机中完成操作...
2018-01-03 10:55:58
749
原创 Redis事务管理
一、什么是事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入。事务可以在一个队列中,一次性、顺序性、排他性的执行一系列命令。二、事务常用命令三、Case 案例为了说明情况在相对应的命令后面加了解释。3.1正确执行127.0.0.1:6379> MULTI //开启事务OK127.0....
2018-01-02 21:15:20
1309
原创 Redis数据持久化的两种方式
一、RDB(Redis DataBase)1.1什么是RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot 快照,它恢复时是将快照文件直接读到内存里,这个快照文件默认是dump.rdb ,可以在redis.conf 中查看与修改。Redis 会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换...
2018-01-02 11:48:51
1611
原创 Redis入门与数据类型介绍
一、NoSQL1.1什么是NoSQLNoSQL 泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用...
2018-01-01 09:48:08
657
基于ssm与websocket的聊天项目
2018-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅