自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 备忘录模式

备忘录模式:保存对象的某一时刻的状态,进行存储优点:实现对象的回滚,可以对数据进行恢复和保存 标准类图: 主体类:public class Originator { private String state; public String getState() { return state; } public void setState(S...

2014-06-19 13:58:24 141

原创 访问者模式

访问者模式:将对象的变化(共享)和不变部分(不共享)进行分离,将变化部分交由具体的访问者执行,访问者可以根据具体的类进行动作优点:封装不变部分,扩展变化部分,一般是在循环抽象对象时候,由访问者来对不同的具体对象进行操作 标准类图: 抽象元素:public interface Element { public void accept(Visitor visitor)...

2014-06-19 13:58:14 116

原创 状态模式

状态模式:一个对象的内部状态发生改变会引起行为的改变,此种变化会引起类的变化优点:避免过多的if-else语句,扩展性良好,有很强的封装性 标注类图:  模拟电梯状态行为:电梯类:public class Lift { public static final LiftOpenState OPEN_STATE = new LiftOpenState(); publ...

2014-06-19 13:58:01 118

原创 享元模式

享元模式:通过池技术,对细粒度对象提供共享支持优点:节省对象创建时间,减少内存开支,降低性能消耗 标准类图: 抽象享元:public abstract class FlyWeight { protected String externalAttribute;//external attribute public FlyWeight(String exte...

2014-06-19 13:57:49 91

原创 空对象模式

空对象模式:使用对象继承来实现程序中的空判断优点:增加程序可读性空对象接口:public interface NullObject { boolean isNull(); } 原对象:public class Subject implements NullObject{ private String name; public String ...

2014-06-19 13:57:38 106

原创 门面模式

门面模式:建立一个统一的对象对来提供子系统外部和内部的通讯方式,子系统外部只能通过此对象对子系统内部进行访问优点:细节隐藏,高层调用不用关心底层实现,避免产生高度的耦合关系 标准类图: 子系统中的类:public class Class1 { public void foo4(){ System.out.println("foo4"); } p...

2014-06-18 07:52:19 87

原创 适配器模式

适配器模式:改变遗留对象的抽象(接口),以匹配当前的环境,使得其能够正常的工作优点:可以让两个没有任何关联的对象匹配在一起运行,而对用调用者来说是透明的,适配器是一种补救措施,在设计阶段一般不考虑。 标准类图: 目标接口:public interface TargetInterface { void targetMethod(); } 目标实现:p...

2014-06-18 07:52:03 87

原创 观察者模式

观察者模式:定义对象的一对多依赖关系,使得每当一个对象状态更改都会通知关联对象进行自动更新优点:建立触发机制,观察者和被观察者分离,调用者不用关心具体的观察者行为 标准类图: 抽象主题:public abstract class Subject { private List<Observer> observers = new ArrayList<...

2014-06-18 07:51:48 80

原创 策略模式

策略模式:抽象一个算法,并封装不同的算法,使得不同算法之间可以相互切换。优点:扩展性良好,不同算法之间可以自由切换,不需要冗余的if-else语句 标准类图: 抽象算法: public interface Strategy { void algorithm(); } 具体算法:  public class ConcreteStrateg...

2014-06-18 07:51:35 94

原创 中介者模式

中介者模式:使用一个中介对象封装对象与其他对象之间的操作行为,使得原本产生交叉蜘蛛网状的对象关系变成星型关系优点:降低对象与对象之间的耦合,满足迪米特法则 标准类图:  抽象中介者:public abstract class Mediator { protected ConcreteColleague1 concreteColleague1; protected...

2014-06-18 07:51:21 97

原创 责任链模式

责任链模式:将请求封装成一个对象,使得多个对象都有机会对该对象进行处理,这些对象组成一条链状结构,请求延着链条进行传递。优点:去除冗余的if-else语句,对请求的发出者和请求的接收者进行解耦,通过类间继承关系进行扩展 标准类图:  抽象处理者:public abstract class Handler { private Handler handler; ...

2014-06-12 08:51:27 87

原创 命令模式

命令模式:将请求封装成一个命令,使用命令对象将请求的调用者和接收者进行分离,从而降低耦合性优点:类间解耦,具有良好的扩展性 标准类图: 抽象接收者: public interface Receiver { void doSomething(); } 具体接受者:  public class ConcreteReceiver impleme...

2014-06-12 08:18:56 75

原创 装饰模式

装饰模式:动态的给一个对象添加额外的职责优点:以调用者透明的方式,动态的改变对象的行为使得装饰对象和主题对象独立,降低耦合性 装饰模式跟静态代理模式方式非常类似,而关注点不同,装饰模式关注点是对对象行为的增强和减弱,可能会改变主题对象的默认行为,而静态代理模式只是对主题对象的访问控制,不会干预对象的默认行为。 标准类图:  ...

2014-06-12 08:13:04 96

原创 代理模式

代理模式:使用代理对象对源对象进行访问控制优点: 1.以调用者透明的方式,动态的改变对象的行为2.主题对象不会改变,高扩展性,需要产生新的行为通过建立代理对象进行3.职责明确,不同的代理类进行不同职责的代理,又跟主题对象进行了严格的区别 标准类图: 静态代理: 抽象主题类:public interface Subject { public void...

2014-06-12 08:12:54 69

原创 模板方法模式

模板方式模式:由父类定义一个算法的骨架,而让具体某些步骤延迟到子类进行实现模板方法优点:1.封装不变的部分,扩展变化的部分2.提取公共部分代码,便于维护3.行为由父类控制,子类实现 标准类图: 定义抽象类(抽象类中定义模板方法和基础方法,基础方式由子类进行实现):public abstract class Hummer { protected abst...

2014-06-12 08:12:41 87

原创 建造者模式

建造者模式:将一个复杂对象的创建和它的表示相互分离,使得同样的构建过程可以有不同的表示建造者模式的优点:具有很强的封装性,高层调用者不用关心具体对象的组装过程,实现高层调用和对象组装过程的解耦,对象的组装过程也是相互独立的,易于扩展 标准类图: 使用建造者模式构建汽车:汽车抽象接口: package org.robbie.hibernate.generate.bu...

2014-06-10 12:21:16 87

原创 原型模式

原型模式:通过克隆对象来进行创建对象原型模式的优点:1.原型模式的拷贝属于二进制的拷贝,比new的创建性能更好2.克隆对象不会调用类的构造函数,可以进行逃避3.多线程操作同一个对象时,可以通过克隆的方式复制到不同的线程中,避免了线程不安全 标准类图只需要实现Cloneable即可 public class MyClass implements Cloneable...

2014-06-10 11:13:18 94

原创 抽象工厂模式

抽象工厂模式跟工厂方式模式类似,不同的是工厂方式模式生产的是一个抽象的产品,而抽象工厂模式生产的是多个抽象的产品。 标准类图 抽象工厂模式:顶层抽象产品类:public interface Product { String getInfo(); } 第二层抽象产品(抽象出两个不同的产品)public interface Phone extends Pr...

2014-06-10 10:57:07 92

原创 工厂方法模式

工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪一个类工厂模式有点:1.将对象的创建进行封装,实现细节的隐藏,高层调用者不用关心创建的具体的产品类,只了解产品类的抽象,具体产品类的创建是由工厂进行决定。使调用者和产品的创建进行解耦。 标准类图:一、 简单工厂模式(不需要抽象工厂)产品抽象类:public interface Product { Stri...

2014-06-10 10:28:19 109

原创 单例模式

      确保一个类只有一个实例的模式成为单例模式。单例模式的优点:1.减少内存开支,降低系统性能消耗2.避免对资源的多重操作,确保只有一个类实例进行动作缺点:1. 没有抽象,没有接口,无法被扩展2. 并行开发,测试不方便,只有能单例模式开发完毕才能对类进行测试 标准类图:  一、标准的单例模式(预先实例化,项目当推荐使用此模式)public ...

2014-06-10 09:36:38 98

原创 spring加载配置文件

在spring中加载配置文件的方式:@Configuration@PropertySource({"classpath:config.properties"})//@Import(DataSourceConfig.class)public class DefaultAppConfig { @Bean public static PropertySources...

2014-05-12 14:56:14 77

原创 8.Spring MVC

    Spring MVC是spring构建的前端MVC web框架,利用spring本身的DI,AOP等特性,实现松耦合,减少web端代码的开发,提高web端的开发效率,并且提供web端的服务特性,例如验证,状态管理等。 搭建Spring MVC:spring MVC的核心是DispatcherServlet,我们称之为中心控制器,通过中心控制器的解析,找对对应spring b...

2014-05-12 14:49:57 91

原创 7.spring事务

        事务是一个完整的逻辑单元,在执行的时候要嘛同时成功,要嘛同时失败,中间不允许被中断,也就是说事务是一个全有或全无的过程。事务拥有4个特性:原子性:事务是由一个或者多个活动单元组成的。原子性确保了事务中所有操作全部发生或者全部不发生。如果所有活动都成功了,事务也就成功了。如果任意一个活动失败了,整个事务也就失败并回滚。一致性:一旦事务完成(不管成功或者失败),事务保证...

2014-05-08 16:10:42 85

原创 6.spring持久化相关

        Spring在持久化上做出了一个统一的模型,目的是为了简化持久化的开发,使得数据访问层和持久化方案的选择相互独立。        统一了数据访问异常:传统的JDBC异常分类比较薄弱,并且都为检查型异常,在程序员对数据库的操作过程中,需要强制的去捕获SQLException,第一是工作比较繁琐,第二个就算捕获了之后其实际意义也不大,并且SQLException包含的异常问...

2014-05-07 15:48:18 132

原创 5.spring aop

        切面,是面向对象编程中一个重要的术语,切面能够模块化系统当中横切关注点,这些横切关注点会横跨系统当中的多个组件,例如安全,事务,日志,缓存,如果在每个组件中都去自行完成这些关注点的代码编写,那么横切关注点的代码将会散步在系统的各个角落,从系统灵活性和维护性来说,造成了巨大的阻碍。所以将横切关注点进行模块化,形成切面,将核心的业务与切面进行分离,能够更加有限的对程序进行管理,使得...

2014-05-06 17:25:26 99

原创 4.基于注解的bean装配

        对于spring提供传统XML配置方式来说,由于项目的日益扩大,XML配置信息也会随之增加,对于项目的后期管理和维护造成一定的复杂性,为了减少XML配置信息,spring提供了基于注解的配置。        spring提供了自动装配和自动检测功能,用于减少XML配置信息。 spring的自动装配4种策略:byName根据名字进行自动装配,改名字为s...

2014-05-06 10:44:25 215

原创 3.装配bean(二)

        本章主要继续介绍spring基于XML装配bean的知识,主要介绍spring对属性的注入。 设值注入简单值和引用其他bean: package org.robbie.test.spring.beans;public interface Instrument { void play();} package org.robbie.test.s...

2014-05-05 17:48:50 129

原创 2.装配bean(一)

        创建应用对象之间协作的行为,称为装配,其实质是spring容器建立bean之间关系依赖的过程。spring提供两种方式来进行创建,基于XML的配置与基于注解的配置。        在spring中有两种容器,一种为beanFactory,是所有容器的父级,第二种为ApplicationContext,ApplicationContext拥有一些特定的功能,比beanFact...

2014-05-05 12:09:41 104

原创 1.spring之旅(一)

        随着JavaEE的不断发展,历经数年之后,在总结了EJB对企业级开发上种种不利,由rod johson开发的spring已经逐渐成为javaEE开发的事实标准与框架,spring的出现让POJO的编程思想逐渐深入到各开发人员的脑海里,目的是为了简化java企业级开发。为了降低java企业级开发的复杂性,spring提出了4种策略:1. 基于POJO的轻量级和最小侵入式编程...

2014-05-05 09:14:23 90

原创 maven开发中合并多个web项目的方法以及最终打包多个项目的方法

1、引入需要的war包依赖(利用插件排除类文件),api依赖,利用war包插件排除web.xml以及共同文件,最后实现静态资源和界面的共享,可启动项目,此方法在开发当中比较麻烦,因为当依赖的api包,静态文件或者界面有修改时,不能够及时反应,只能由依赖的war包再次完成打包安装之后才能够响应。 2、通过jetty实现嵌入式启动,自己动态构建jetty Server, 依赖的war包...

2013-09-18 00:01:22 1125

原创 linux源码安装mysql

  在ubuntu下源码安装mysql需要首先安装cmake,可以cmake官网上下载源码进行安装,也可以直接通过ubuntu的apt指令直接进行安装。 通过apt命令直接进行安装cmake apt-get install cmake 下载cmake源码包进行安装 tar zxvf cmake.tar.gzcd cmake./configure --...

2011-10-06 20:17:43 76

原创 jbpm3概览

前段时间选用JBPM来做为未来项目的工作流引擎,JBPM的版本目前主要是3,4,5,因为4在很多时候有BUG,并且官方的的documentation也是不推荐的,所以没有去看4的一些相关信息,版本5中的内容比较新,融入的东西也比较多,特别是对BPMN标准的支持,但是因为内容过多,学习的曲线度也比较大,所以从tom研发的JBPM3着手,3,4,5的三个版本几乎是完全不一样的,不可能完全的掌握,...

2011-01-25 16:10:49 324

原创 工作流和jbpm

1、什么是工作流,工作流本身是面向开发人员的一种术语,对于系统的使用者,概括来说就是业务流程,即多个参与者共同实施参与到一个业务流程当中,按照这个业务流程的步骤和规则执行完成,就是一个工作流。 2、为什么我们要使用工作流引擎,在软件的世界里面有一个很重要的思想,那就是工程化,借助于建筑的永恒之道,软件行业经过多年的积累,逐渐找到了适合自己的工程化道路,而在工程化的具体体现过程当中,就是希...

2011-01-25 11:51:30 89

原创 今年的年会

公司得力部门的领导被授予奥迪Q5一辆,私下还有几十万的分红,年会当场给了钥匙,场面拉风,底下的兄弟们欢呼雀跃。不知这些兄弟是因何高兴,跟我们有何关系,拼命的是在编程一线上的伙计,拿钱拿的多的还是领导,国内大部分公司就是这个样子,要技术,技术不行,要管理,管理不行,空悲切。...

2011-01-25 11:02:43 76

原创 记春节前的一个工作日下午

快过年了,公司里面的领导也闲了,上班的时候随便你干什么,就算无所事事在那里坐着,他也置若罔闻,想一想还是挺怀念小时候过年的样子,嘻嘻哈哈,无忧无虑,人啊,总是喜爱那些美好的东西。 上个星期从朋友那获得的FQ软件在公司和家里都连不上,下午的时候又下了一个prox来用,无意间居然顺畅的连上了,立即把twitter,facebook之类的网站都注册了一下,进去尝尝鲜,让我感触最深的,还是老外的...

2011-01-21 15:25:42 123

原创 linux下nginx + mongrel的ROR的集群环境搭建

    ror的生产环境的搭建过程当中可以有多种web server和app server的选择和搭配,其中nginx + mongrel的组合是众多选择当中性能突出的一种,因此,手动搭建一个nginx + mongrel的ROR环境让自己的rails程序流畅的运行便成了事在必行的工作。    建议在搭建ROR的生产过程之前,能够对javaeye老大robbin的关于ROR服务器的相关文章进行...

2010-12-07 15:26:16 198

原创 linux下lighttpd + fcgi的ROR环境搭建

    由于家里断网了,只有在办公室把这篇文章搞一搞,这篇文章只是自己的一个随笔总结,robbin对lighttpd和fcgi的环境搭建阐述的已经非常详细,建议大家去熟读下,他对lighttpd + fcgi进行了高度的评价,并且从javaeye的事实运营过程当中我们也看到了确实这2个服务器的搭配显得非常的默契,是现今ROR最好的,性能最高的服务器搭配组合。另外一种组合则是nginx + mong...

2010-12-07 14:51:47 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除