- 博客(14)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 设计模式之策略模式
策略模式就是定义一组算法,将每个算法都封装起来,并且是他们之间可以互换 通过类图可以知道,策略模式设计到如下三个角色1.Context封装角色它也叫上下文角色,其作用就是用来封装高层模块对策略的直接访问,封装可能存在的变化 2.Strategy抽象策略角色策略的抽象,定义每个算法或策略必须具有的方法和属性 3.ConcreteStrategy 具体策略...
2015-03-20 17:05:55 153
原创 设计模式之装饰者模式
装饰者模式又叫包装模式,定义如下:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰者模式相比生成子类来说更为灵活。 装饰者模式的类图如上:从图中可以看到装饰着模式涉及到四个角色:1.抽象构件角色ComponentComponent可以是一个接口或者抽象类,主要是定义一些规则2.具体构件角色ConcreteComponentConcrete...
2015-03-19 14:47:38 144
原创 设计模式之责任链模式
责任链模式是一种对象的行为模式。在责任链模式里,使多个对象都有机会出来请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求。 责任链模式的显著优点就是讲请求和处理分开,请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌,责任链的一个显著缺点就是性能问题,因为每个请求都是从链头遍历的到链尾,特别是在链比较...
2015-03-18 14:36:27 125
原创 设计模式之命令模式
命令模式是一个高内聚的模式,其定义如下:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录日志,可以提供命令的撤销和恢复功能。 命令模式的通用类图如下: 命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任分开,委派给不同的对象。每一个命令都是这样一个操作:请求一方发出要求执行一个操作,接收的一方...
2015-03-17 16:35:08 150
原创 设计模式之中介者模式
中介者模式又叫调停模式,定义如下:用一个中介者对象封装一系列的对象的交互,中介者使各个对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 通用类图如下: 从图中可以看到,中介者模式由一下几部分组成:1.抽象中介者模式Mediator抽象中介模式定义统一的接口,用于各同事角色之间的通信 2.具体中介者模式Concr...
2015-03-16 14:23:38 149
原创 设计模式之原型模式
原型模式是一种创建型的模式,原型模式的简单程度仅次于单例模式和迭代器模式,正是由于简单,使用的场景非常多。 通过原型模式的通用类图可以看到,其实原型模式的核心就是一个clone方法,通过该方法实现对象的拷贝。 原型模式的优点:1.原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量对象时。2.规避构造方法的约束,因为原型模式是...
2015-03-16 09:19:02 161
原创 代理模式之动态代理
为什么叫动态代理呢?动态代理就是实现阶段不用关心代理谁,而是在运行阶段指定代理哪一个对象,相对来说自己写代理类的方式都是静态代理,现在有一个非常流行的框架Spring,当我们面试的时候一般都会问Spring有哪些特征,我们一般会说AOP、IOC,其实这里的AOP即面向横切面变成的实现原理就是动态代理。 接着上次小明找游戏代理说,看看使用动态代理如何实现小明找代练的场景: 与...
2015-03-14 20:08:48 116
原创 设计模式之代理模式
代理模式是一种使用率非常高的模式,定义如下:为其他对象提供一种代理以控制这个对象的访问。 从通用类图中可以看出代理模式涉及到三个类:1.Subject抽象主题角色抽象主题类可以是抽象类也可以是接口,上面的类图使用的抽象类 2.具体主题角色也可以称为被委托角色,是业务逻辑的具体执行者 3.Proxy代理角色它负责对真是角色的应用,把所有抽象的主题类定...
2015-03-13 14:04:56 78
原创 设计模式之建造者模式
将一个复杂的对象创建与它的表示分离,是的同样的构建过程可以创建不同的表示。 通用类图如下: 建造模式中主要有如下四个角色:Prodct产品类:产品便是建造中的复杂对象 抽象建造者:给出一个或多个抽象接口,规范产品的组件,有子类实现具体组建方法 具体建造者:通常是实现了抽象建造者的方法,并且返回一个组建好的对象 Director导演类...
2015-03-12 21:27:20 163
原创 设计模式之模板方法模式
模板方法模式的定义:定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 模板方法的通用类图 我们所说的模板方法指的就是抽象类中的templete方法,该方法实现对doSomething方法的调用并且这个方法的具体实现是交由子类实现的。 模板方法的具体应用,比如我们开发的系统需要解...
2015-03-11 21:05:31 105
原创 设计模式之抽象工厂模式
抽象工厂模式是工厂方法模式的升级,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方法。 抽象工厂的通用类图 抽象工厂模式使用于多个业务品种或者多个业务类型,即AbstractProduct存在多个实现类,拿生产手机为例。可以生产诺基亚(由于可以砸核桃所以破产了),苹果、三星、小米、华为、锤子等,类图如下: 将...
2015-03-10 14:49:47 127
原创 设计模式之工厂方法模式
最近一直在看设计模式相关的书籍,决定正确每天将自己学到的设计模式以及自己的理解写成博客,供大家参考和点评,主要目的还是对自己的学习做一下总结。 最近看到一本设计模式的书籍《设计模式之禅》已经通读一遍,现在是第二遍阅读,感觉作者对设计模式的讲解很通俗易懂,通过对这本书的学习也加深自己对java框架方面的理解,java框架上又很多设计模式,以前上学的时候也学过设计...
2015-03-06 15:17:15 101
原创 设计模式之单例模式
什么是单例模式?单例模式就是一个类只能产生一个实例,如果控制一个类只能产生一个实例呢?我们在创建对象时一般都是使用new来产生对象即调用类的构造方法,如果将构造方法私有化那么就控制了外部类随意创建对象的能力。 所以单例的实现可以总结为:1.构造方法私有化2.类中含有一个本类型的静态的私有化的属性3.对外提供一个静态的返回本类型的静态方法 单例模式的实现分为懒...
2015-03-05 16:50:23 77
原创 区间合并
给定一组区间,合并所有重叠的间隔。例如:[1,3],[2,6],[8,10],[15,18]返回:[1,6],[8,10],[15,18] 解决思路: 首先我们需要创建一个区间类,类中属性为start和end并且实现排序,我们队排序后的区间类进行判断 例如区间类为A ,我们需要循环区间类集合,比较两个区间类A1,A2如果A1.st...
2015-03-01 18:50:00 126
quartz定时作业的应用
2016-08-24
Shiro与SSH集成的一个综合的例子
2014-09-13
dhtmlxscheduler 所需jar报
2014-04-14
CSDN英雄会答题疑问
2014-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人