设计模式
文章平均质量分 65
家鸽996
helloworld
展开
-
工厂模式-通俗易懂的讲解
某书给的定义:“定义一个用于创建对象的接口,让子类决定实例化哪一个类”说白了,就是实例化的事情留给子类去。打个比方,工厂生产出一个罐子(对象),里边要装什么东西(实例化),是装糖,还是装醋,随你便。使用工厂的目的有几个: 1.当一个类不知道它所必须创建的对象的类的时候。 2.当一个类希望由它的子类来指定它所创建的对象的时候。 3.当类将创建原创 2013-04-09 16:57:17 · 1946 阅读 · 0 评论 -
xml 报文转对象方法
import java.io.StringReader;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Unmarshaller;public class XmlTransTools { public static T Xml2JBean(Strin原创 2016-05-25 18:17:05 · 1922 阅读 · 0 评论 -
使用Spring Quartz做自动任务 启动和关闭
因开发需要做一个队自动任务的开关,网上的搜索的结果都不是很满意,考虑到spring本身使用的是单例模式,所以在springMVC中开发是最适合的。/** * 启动、关闭自动通过 * @author yangxujia * @throws Exception * @state start为开始,stop为暂停 * @date 2015年11月13日上午11:58:17 */原创 2015-11-13 15:38:35 · 19493 阅读 · 0 评论 -
23中设计模式
其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 三、Factory Method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到原创 2013-05-03 00:33:51 · 497 阅读 · 0 评论 -
组合模式
定义:将对象组合成树形结构以表示”部分-整体“ 的层次结构。"Composite 使得用户对单个对象和组合对象的使用具有一致性。”类图:代码:package designPatterns;import java.util.ArrayList;import java.util.List;abstract class Employer{ private Stri原创 2013-04-21 11:28:20 · 437 阅读 · 0 评论 -
解析器模式
定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用性:当有一个语言需要解释执行,并且你可以将该语言中的句子表示为一个抽象羽凡树是,可以使用解释器模式。1.该文法简单对于复杂的文法,文法的类层次变得庞大而无法管理。2.效率不是一个关键问题最高效的解释器不是通过直接解释语法分析树实现的,而是首先将它们转换成另一种形式。类图原创 2013-04-23 02:03:06 · 556 阅读 · 0 评论 -
命令模式
定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。适用性:1.抽象出待执行的动作一参数化某对象。2.在不同的时刻指定、排列和执行请求。3.支持取消操作。4.支持修改日志,这样当系统崩溃是,这些修改可以被重做一遍。5.用构建在原语操作上的高层操作构造一个系统。类图:代码:p原创 2013-04-23 01:30:48 · 479 阅读 · 0 评论 -
责任链模式
定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者直接的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。这一模式的想法是,给多个对象处理一个请求的机会,从而解耦发送者和接受者。适用性:1.有多个对象处理一个请求,哪个对象处理该请求运行时刻自动确定。2.你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。3.可处理一个原创 2013-04-23 00:56:52 · 427 阅读 · 0 评论 -
享元模式
定义:运用共享技术有效地支持大量细粒度的对象。适用性:1.一个应用程序使用了大量的对象,造成很大的存储开销。2.对象大多数状态都可变为外部状态。3,如果删除对象的外部状态,那么可以用相对较少的共享对象取代很对组对象。4.应用程序不依赖对象标识。由于享元模式对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。类图:pa原创 2013-04-22 22:13:49 · 503 阅读 · 0 评论 -
外观者模式
定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这子系统更加容易使用。 适用性 1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越 复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容 易对子系统进行定制,但这也给那些不需要定制子系统的用户带来原创 2013-04-22 01:04:53 · 645 阅读 · 0 评论 -
装饰模式
定义:动态地给一个对象增加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。适用性:1.在不影响对象的情况下,以动态、透明的方式给单个对象增加职责。2.对象那些可以撤销的职责 。3.当不能采用生成子类扩充时。类图:代码:package designPatterns;interface Personn{//dinyi原创 2013-04-22 00:40:42 · 485 阅读 · 0 评论 -
适配器(Adapter)-通俗简单的讲解
网络罗列了很多适配器的文章,但总的来说第一写得太官方,第二写得太啰嗦,第三讲得不太对,可能作者自己还没理解吧。 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式,在我的理解,就是为一个接口写一个驱动。通俗的讲,我们就是想用一个目标接口(Target),去做一个其他接口(Adaptee)能做的事。pac原创 2013-04-10 10:11:56 · 1146 阅读 · 0 评论 -
建造者模式 -通俗讲解
Builder 模式的定义如下:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。看懂吗?搞不懂那些写定义的人为什么不写通俗点。通俗地说就是:将一个复杂对象的创建和部件的创建分开,如造艘船,构建船的对象和构建船的部件是分开的,是不是还是有点不懂,没事再听。打个比方作为客户,造船的时候,每个部件的建造过程,作为客户是看不到的,而客户看到的介绍是:船有船身,甲板,桅杆(原创 2013-04-10 00:04:55 · 744 阅读 · 0 评论 -
代理模式
代理模式其实很好理解。就是将创建对象的权限叫给别的类去做还是用代码说话吧:package DesignPattern;interface Object{ void action();}class ProxyObject implements Object{ Object obj; public ProxyObject(){ System.out.println(" This原创 2013-04-10 14:39:59 · 537 阅读 · 0 评论 -
设计模式之Bridge
板桥里人 http://www.jdon.com 2002/05/01Bridge定义 :将抽象和行为划分开来,各自独立,但能动态的结合.为什么使用?通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以下两种:1. 这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concrete class:方形桩和圆形桩;转载 2013-04-10 14:05:39 · 451 阅读 · 0 评论 -
原型模式(prototype)-通俗讲解
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。也就是拷贝对象。适用情况: 1.当一个系统应该独立于它的产品创建、构成和表示时。 2.当要实例化的类是在运行时刻指定时,例如,通过动态装载。 3.为了避免创建一个与产品类层次平行的工厂类层次时。 4.当一个类的实例只能有几个不同状态组合中的一种时。 建立相应数目的原型并克隆它们可能比每次用合适的原创 2013-04-10 02:14:15 · 797 阅读 · 0 评论 -
单例模式 -通俗易懂的讲解
什么是单例模式:保证一个类有且仅有一个实例,并提供它的全局访问点。单例模式有什么用:其实单例的作用在于避免产生太多实例,也就是不用new那么多次,new一次就占用一次内存的资源,new多了电脑也会慢的。具体举个例子吧。在取款的时候,绝对不允许有多个对象,假如多个对象同时操作数据库,将导致线程不安全,有可能出现同时取款,账目只扣一次款。至于说为什么只扣一次款,了解的看下文,不原创 2013-04-10 01:41:37 · 1684 阅读 · 2 评论 -
抽象工厂 -简单的讲解
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类,抽象工厂跟工厂模式的区别在于对象的实例化,工厂模式交给子类去处理,而抽象工厂不是,他是通过方法返回对象的实例适用的情况:1.一个系统要独立于它的产品的创建、组合和表示时。2.一个系统要由多个产品系列中的一个来配置时。3.当你要强调一系列相关的产品对象的设计以便进行联合使用时。4.当你提供原创 2013-04-09 17:25:18 · 596 阅读 · 0 评论 -
java ftp 断点下载,异常重连
package com.yang.task.utils;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.concurrent.Cal...原创 2016-10-09 19:47:33 · 4428 阅读 · 2 评论