- 博客(26)
- 收藏
- 关注
原创 JAVA NIO
Java SE1.4引入了大量用于改进输入/输出处理机制的特性 NIO的特性: 1、字符集编码器和解码器 2、非阻塞的I/O 3、内存映射文件 4、文件加锁机制 大多数操作系统都可以利用虚拟内存实现将一个文件或者文件的一部分“映射”到内存中。然后就可以像内存一样访问快速。 JAVA NIO中提供了访问内存映射的方式“通道(channel)”传递,通道是用户磁盘文...
2014-02-18 15:42:24
116
原创 线程池
线程池在java中非常重要,在java se1.4以前的版本线程池非常简单,但在1.5以后新增了java.util.concurrent多线包,使线程池变的非常强大!再和java se1.4新增的NIO可以实现非常高性能的功能。 为什么使用线程池: 1、减少线程的创建销毁所到来的资源消耗,线程池可以使线程得到复用,并且易于维护管理。 2、可更具系统资源消耗(如、cpu、ro...
2014-02-13 15:16:44
124
原创 责任链模式(Chain of Responsibility Method)
使多个对象有机会出来请求,从而避免请求者和请求处理者之间的耦合,将这些处理请求的对象链成一个串,将请求一直往下抛,直到有处理者处理请求。 纯责任链模式: 每一个处理请求对象,要么完全不处理请求直接往下抛,要处理完整的请求并返回。 复杂责任链模式: 每一个请求者对象可以处理请求的一部分,然后再向下抛出,直到有处理者处理完毕。 一、使用场景 1、有多个对象可以...
2014-02-11 19:19:57
136
原创 访问者模式(Visitor)
GOF定义:表示一个作用于某对象结构中的各元素的操作用,它是你可以在不改变各元素的前提下定义作用于这些元素的新操作。 访问者模式是21中设计模式中最难理解的一个设计模式。 角色分析: 抽象访问者: 抽象类或者接口,声明访问者可以访问哪些元素,具体的程序中就是visit方法中的参数定义。 访问者: 实现抽象访问者所声明的方法,...
2014-02-10 17:08:53
141
原创 中介者模式(Mediator Pattern)
中介者模式又称调停者模式,属行为模式。 用一个中介者来封装多个对象之间负责的交互行为,中介者对象使各交互对象之间不需显示的声明相互引用,从而使对象之间松耦合,而且可以独立的改变他们之间的交互行为。 角色分析: Mediator(抽象中介者): 定义同事类之间的通讯接口。 ConcreteMediator(具体中介者): ...
2014-02-10 11:57:13
162
原创 Observer观察者模式
观察者模式:定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所以依赖于他的对象都得到通知并更新。 角色分析: 抽象目标角色(Subject): 目标角色提供观察者注册、删除接口,并发出通知。 抽象观察者角色(IObserver): 当目标角色发生改变时,获得通知的对象的一个更新接口。 实现: package obs...
2014-02-08 15:49:53
104
原创 备忘录模式(Memento)
定义:在不破坏对象封装的前提下,捕获对象内部的状态,并在该对象之外保存这个状态,以便后面恢复,这个重点是在对象之外保存这个状态。 网上的一个例子: package memento; /** *create by datao.wang 2014-2-8-上午11:16:50 */ public class Client { public static void ...
2014-02-08 11:23:46
100
原创 模板方法模式(Template Method Pattern)
Template Method Pattern属于行为模式。 GOF定义:定义一个操作中算法骨架,将一个些算法操作延迟到子类中去实现,模板方法使得子类能够改变算法结构或者重新定义算法实现。 角色分析:结构非常简单 AbstractClass(抽象类): 在抽象类中定义一系列的基本操作,者写基本操作可以具体的实现也可以是抽象的。 ConcreteClass(实现...
2014-02-08 10:43:40
158
原创 策略模式Strategy
策略模式和状态模式比较类似。 状态模式是以状态驱动行为的模式,而策略模式则以算法驱动行为的模式,某个类存在着不同的状态且不同状态类的行为不同,则选择状态模式,如某个类的行为有几种不同的实现方式,则选择策略模式。 GOF定义:定义一族算法,将每个算法分别封装起来,并且相互之间可以替换。策略模式可以使不同算法之间的替换独立于使用算法的客户。策略模式是非常常用的模式。 角色分析: Con...
2014-02-07 17:28:05
114
原创 状态模式
GoF给出的定义做个通俗的解释就是:一个对象在不同的状态下有不同的行为,也可以说对象的每个状态有着不同的行为。 状态模式所涉及到的角色有: ● 环境(Context)角色,也成上下文:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个具体状态类的实例给出此环境对象的现有状态。 ● 抽象状态(State)角色:定义一个接口,用以封装环境(Context)对象的一个...
2014-01-27 17:46:05
87
原创 解释器Interpreter
所谓解释器模式就是定义一个语言的文法,并建立一个解释器来解释该语言中的句子! 比如:taglib标签,正则表达式都是采用的解释器。 解释器不仅仅只定义一种语法语义,更可以使用一个抽象语法树定义一个语言实例。 解释器角色: AbstractExpression: 抽象表达式。声明一个抽象的解释操作,该接口为抽象语法树中所有的节点共享。 TerminalExpressi...
2014-01-27 15:57:03
103
原创 数据结构--B树
从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。 说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。 出处:http://blog.youkuaiyun.com/v_JULY_v 。 第一节、B树、B+树...
2014-01-16 17:23:23
202
原创 命令模式
命令模式是行为模式的一种。行为模式就是关注对象的行为和责任。区别了建造模式、创建模式。 命令模式把一个请求或操作封装在一个对象中,把发出命令的责任和执行命令的责任,委派给不同的对象。 回调就是命令模式的一种..... 例:监听器 main(){ Botton b=new Buttton(); b.addListener(new XXListener()...
2013-12-05 11:37:18
101
原创 享元模式
享元模式:用共享的技术有效地支持大量的细粒度对象。享元模式在一般的项目开发中并不常用,而系统底层开发中会用到,常常为了提升系统的性能而使用该模式。比如:java中的String类就使用了该模式。 main(){ String a="abc"; String b="abc"; System...
2013-11-20 17:47:13
139
原创 Java基础知识
java的方法: 1、方法的名字和参数的列表称为方法的签名,例如f(int)\f(String)是相同的方法名不同的签名,方法的返回值不属于签名的一部分,所以在子类覆盖超类方法的时候允许返回类型定义为原返回类型的子类型(java se5.0 以后)。 2、虚拟机在寻找类方法匹配时,会加载类的时候会创建一个类的方法列表。 ...
2013-11-19 16:17:31
98
原创 Java基础知识
Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言 java的可移植性表现:1、java中基本类型的大小是固定的,不会随着系统的变更而改变(比如C/C++的int可 能是16位,可能是32位),...
2013-11-19 16:05:47
116
原创 代理模式
GOF定义:为其他对象提供一种代理以控制该对象的访问。 代理模式是一种非常有用的模式,它存在的变种模式比较多。比如:远程代理、虚拟代理、保护代理、智能引用、动态代理等等。 package proxy; /** *create by datao.wang 2014-3-1-下午2:56:30 */ public interface Subject { //被...
2013-11-13 17:47:37
107
原创 装饰模式Decorator
装饰模式又名包装(Wrapper)模式,装饰模式以客户端透明的方式扩展对象的功能,是继承关系的一种代替方案。 装饰模式其实我们在使用java I/O的时候就已经使用过例如: //写法一: FileInputStream fis=new FileInputStream(file); BufferedInputStream bis=new BufferedInputStream(fi...
2013-11-10 18:31:15
93
原创 组合模式Composite Pattern
定义(GoF《设计模式》):将对象组合成树形结构一表示“部分整体”的层次结构,使的用户对单个对象和使用具有一致性。 组合模式:使用我在处理树形结构中的复杂等级机构时非常有用,它可以使得客户端处理复杂对象就想处理简单对象一样,从而使得客户端与复杂对象之间解耦。 比如:递归数据结构、分级数据结构、树形结构。 例:树形菜单,文件系统。 想到组合模式的实现我就想到了传销,中国大多数直销...
2013-11-06 18:38:42
102
原创 桥梁模式Bridge
桥梁模式:又称柄体模式【GOF95】桥梁模式的用意是"将抽象化 (Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。 关键词: 抽象化、实现化、脱耦 脱耦: 所谓耦合就是两个实体之间存在某种强关系,比如说java中的继承。所谓脱耦就是将两个实体之间存在的这种强关系去掉,或者将两者之间的关系改为弱关系。 java类之间的关系分...
2013-11-02 17:10:48
152
原创 外观模式Facade
外观模式(Facade):又称门面模式,是给子系统或客户端一个一致的界面,从面定义一个高层的接口,这个接口使得子系统或客户端更加容易使用。从而降低了子系统或客户端调用不同接口带来的复杂性。 如图: 未使用外观模式: 网上一例:简单意思是打开第一个抽屉取得第二个抽屉的钥匙,然后打开第二个抽屉取得文件。 实现: public class DrawOne{ ...
2013-10-31 15:01:50
105
原创 工厂模式
工厂模式:客户端不需要知道具体的实现,客户端只需要面向接口编程就行,这样是客户端从具体的实现中解耦和。分为简单工厂模式、工厂方法模式、抽象工厂模式 一、抽象工厂模式 网上的一个例子:一个客户告诉装机员他需要装一台什么样的电脑。 //抽象一个工厂 public interface AbstractFactory{ //生产方法 相当一条工厂的生产线 ...
2013-10-28 18:09:04
102
原创 原型模式Prototype
原型模式:也是一种创建型模式,它关注的是系统中需要创建大量对象,但对象之间有很多相似之处或者对象基本相同。 原型模式有两种不同的实现:1、简单形式 2、登记形式一、简单形式 public interface Prototype{ public Object clone(); } public class P1 implements Prototype{ ...
2013-10-27 19:39:46
92
原创 适配器模式
适配器模式:将一个类的接口转化成客户需要的另外一个接口,Adapter模式原本为那些接口不兼容而不能一起工作的接口设计。 设配器模式分为:示例: 一、类适配器 :通过继承实现 public interface IMailer{ void sendMail(); } public class OuterMailer{ void sendMail(); }...
2013-10-20 12:02:09
114
原创 建造模式
建造模式:就是把复杂的创建过程封装在内部,对外部来说只需要传入建造者和建造工具,不需要关心内部的具体实现。 示例: 假如我们要生产一台笔记本,笔记本由A、B、C三部分组成,这时我们可以A\B\C三部分的生产看成为一个建造工具,然后再由一个工人(建造者)将三部分组装起来。 第一部分:BuildTool(建造工具)接口 public interface BuildTool(...
2013-10-19 18:19:45
144
原创 单例模式
单例模式是设计模式中常用的一种模式,解释为:一个类仅有一个实例。单列模式分为两种:1、饿汉式 2、懒汉式 一、饿汉式 :第一次class加载时,对象就创建。 public class Singleton(){ //私有构造,外部不能直接new该对象 private Singleton(){} //调用私有方法,内部构建对象 private static S...
2013-10-19 12:03:06
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅