- 博客(23)
- 资源 (67)
- 问答 (1)
- 收藏
- 关注
原创 java设计模式之代理模式(8)
代理模式就是,不直接调用目标函数,而是通过一个代理类来调用。它的类继承关系和装饰模式很类似。但是它们的目的不一样。代理模式不会增加新的功能,只是在调用和被调用之间加入代理层。而装饰模式旨在增加新功能。看代码:package com.pattern.struct.proxy;public interface Subject { public void request();
2014-07-31 17:52:31 1029
原创 java设计模式之装饰模式(7)
属于结构型模式,装饰模式就是动态的给一个对象增加一些功能。要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。java的IO流的实现就是装饰模式。可以轻松的把一种流装饰成为另一种流。举个例子:计算牛奶的价格。 纯牛奶3.0元。加糖1.0元,加食用颜料2.0元。等等。我们需要根据顾客点的内容,动态的计算价格。下面看代码:
2014-07-30 10:36:51 1121
原创 java设计模式之适配器模式(6)
属于结构型模式。适配器这三个字在生活中很常见。举个最简单的例子,那就是变压器,它可以把几万伏的高压变成我们生活用电220伏。变压器就是一种适配器。适配器模式的作用就和生活中的适配器的作用是很相似的。总之就是将某个类的接口转换成客户端期望的另一个接口表示。属于结构型模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式类的适配器模式:比如我们游戏中有一个马的类H
2014-07-29 13:46:07 1106
原创 java设计模式之原型模式(5)
原型模式也是一种创建型模式,只不过他创建的对象不是通过new来创建的,而是通过克隆来实现。为什么要通过克隆而不是new呢?举个例子:比如一个对象的创建需要读取本地文件(Excel)中的信息,而且需要读很多个excel的信息才能创建成功。这时候创建一个对象的成本是很高的。如果每次都new的话是行不通的。这时候原型模式就派上用场了。我们不重新new一个对象,而是通过之前的对象进行克隆一个。
2014-07-28 13:56:46 1233 1
原创 java设计模式之三句话记住23种设计模式(4)
1:创建型模式:弹弓原件(单例,工厂,原型,建造)2:结构型模式:外援组 佩戴桥石(外观,享元,组合,适配,代理,桥连,装饰)3:行为型模式:爹责令房中介装备观测板(迭代,责任链,命令,访问者,中介者,解释器,状态,备忘录,观察者,策略,模板)
2014-07-25 17:28:12 2101 2
原创 java设计模式之建造者模式(3)
建造者模式:属于创建型模式,和之前的工厂模式很相似。两者相比的话,建造者模式创建的对象是复杂的对象,而工厂模式创建的都是简单的单一对象。 建造者模式就像一个 流水线,会把各种零件按照一定的顺序组装成一个完整的对象。 比如:一个简单的电脑,由主板,cpu和显示器组成, 而且组装一个电脑我们必须按照先装主板,然后装上CPU,最后装上显示器 这个步骤。这时我们就
2014-07-25 09:44:17 1204 1
原创 java设计模式之工厂模式(2)
工厂模式:属于创建型模式。同我们生活中的厂家很相似。我们并不自己制造(new)产品,而是依靠厂家制造,我们只是拿来使用。简单的说就是让工厂 根据我们的需求给我们new一个对象。 工厂模式又分为工厂方法模式和抽象工厂模式。 工厂方法模式又分为:普通工厂方法,静态工厂方法.
2014-07-24 18:21:54 1164 1
原创 编程名言
大部分好的程序员编程并不是为了钱或名望,而只是因为纯粹的乐趣。编程的时候,总是想着那个维护你代码的人会是一个知道你住在哪儿的有暴力倾向的精神病患者。作为一个程序员,郁闷的事情是,面对一个代码块,却不敢去修改。更糟糕的是,这个代码块还是自己写的 Peyton Jones 能说算不上什么,有本事就把你的代码给我看看。——Linus Torvalds,Linux之父 24过早的优化是
2014-07-24 09:38:39 1435
原创 java设计模式之单例模式(1)
单例模式:属于创建型模式。项目中只存在某个类的一个对象,而且只可能存在一个对象。那么我们说这个类是单例模式,也叫单态模式。单例模式分为两种 :懒汉式 和 饿汉式。饿汉式
2014-07-23 15:30:55 1119 1
原创 java设计模式(0)
总体来说设计模式分为三大类:创建型模式、结构型模式和行为型模式。创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
2014-07-23 15:18:15 984
原创 从零实现MVC框架之总结(9)
到这里我们已经基本上实现了MVC的一些基本功能,包括 连接池、AOP事务管理、IOC注入、控制层实现以及文件上传。这些代码都是经过简单的测试,所以有BUG在所难免。因为这个东西做的过程比较匆忙,所以也没有什么注释。有兴趣看的同学们辛苦了.. 所有的源码的jar包已上传到CSDN,如果需要请到http://download.csdn.net/detail/maosijunzi/76070
2014-07-16 17:26:47 1302
原创 从零实现MVC框架之文件上传(8)
这里使用commons-io-2.4.jar和commons-fileupload-1.3.1.jar实现文件上传,所以事先要把这两个包加入到项目中。文件解析类
2014-07-16 17:15:56 2044
原创 从零实现MVC框架之依赖注入IOC(7)
我们的目的是在学习MVC的实现方式,而不是真的做一个MVC框架,所以就一切从简,所以这里我们只做Controller中的依赖注入。也就是说只有Controller中才可以使用我们下面创建的Inject注解。如果再其他的地方使用是注入不成功的哦。注解
2014-07-16 16:40:48 2096
原创 从零实现MVC框架之控制层(6)
最早使用的控制层框架就是struts1 然后是struts2 在之后就是SpringMVC的Controller了。就个人而言感觉Spring的Controller使用很方便也很简单。所以我们的控制层就模仿Spring的Controller来实现。包括注解、返回页面的方式、以及之后的文件上传都依稀能看到SpringMVC的身影。并且我们也是用Servlet来实现,真是一个精简版的Sprin
2014-07-16 16:23:29 2932
原创 从零实现MVC框架之AOP事务(5)
利用动态代理实现AOP。另外我么写一个注解,表明哪个类下的方法需要加事务(为了简单偷懒了,哈...)。加上注解后此类的每个方法都会加事务。这其中还多了一个事务执行器的概念,事务执行器和一般执行器的区别就是 事务执行器中数据库连接是不自动提交的。而一般执行器中的连接是自动提交的。 我们使用ThreadLocal来保存事务执行器,来保证每个线程都有自己的事务执行器。下面看具体实现。
2014-07-16 15:38:38 1433
原创 从零实现MVC框架之增删改查(4)
概述这一章节貌似有点小复杂。为了实现对象的增删改查,我们需要做点功课1:生成id,我们采用手动生成id的方法,这里我们特意也为id创建了一个池子,所有的id都从池子里面取。2:对象状态: 新建状态、持久状态、查询状态。查询状态是内部处理。 处于新建状态下的对象可以进行保存操作,不能更新和删除 处于持久状态下的对象可以进行更新和删除操作,不能保存。3:执行
2014-07-16 13:58:57 12897
原创 从零实现MVC框架之需求篇(1)
使用MVC架构的web应用已经很长时间了,其中自动化事务管理,IOC和AOP等功能的强大也让我为之动容。为了更彻底的明白这些牛逼功能的原理,最好的办法就是自己来实现一套。所以就有了这篇博客以及后续MVC框架的一步一步的实现。首先让我们来分析一下,一个MVC框架都包含那些基本功能:1:连接池2:Bean和表的映射3:AOP 事务管理4:IOC5:接受页面请求和响应
2014-07-15 15:32:57 2054
原创 java nio http服务器(4)小结
前三篇博客,简单的模拟了web服务器的工作流程。当然这个实现实在是太简单了。分为连接器,处理器和servlet容器各部分功能如下:连接器:接受http请求,创建request和response对象。servlet容器:存储所有的servlet实例,按照规范Servlet是单实例的,所以容器中只存一个servlet实例,不过你也可以不按照规范来,每次请求都创建一个Servlet。
2014-07-15 10:51:06 2253
原创 java nio http服务器(2)封装request和response对象
在上一篇文章中,服务器只有一个简单的收发请求的类,我们可以把它理解为连接器。这篇文章我们来实现一下简单的request和response封装。连接器
2014-07-11 12:23:21 7453
原创 java nio http服务器(1)读取http请求
通过nio读取http的头信息。直接看代码:package com.hcserver.conn;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.StringReader;import java.net.InetSocketAddress;import java.nio
2014-07-10 16:54:30 7350 3
利用mule服务总线代理cxf服务
2012-08-23
MongoDB实战
2018-01-29
python基础教程第二版(高清书签中文)
2018-01-23
10种超级棒的jquery特效
2013-01-04
Schema教材
2012-12-17
泛型实例详解
2012-10-29
soa核心技术及应用第三部分
2012-10-23
soa核心技术及应用
2012-10-23
去哪里能找到本书的源码
2016-06-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人