Design patterns
dixiangyang
这个作者很懒,什么都没留下…
展开
-
设计模式之代理模式(Proxy)
所谓的代理模式,也就是指通过一个代理对象来代替原对象在不改变原来代码的基础上对某一对象进行额外的控制,从而更好的体现对象中的单一职责。但是对于静态代理来说,一个接口只能服务于一种类型,如果要代理方法很多的时候,则要为每一个方法定义接口。这样就要学习一下动态代理和反射机制。这里我们学习一下动态代理。 动态代理有两种方式:一、需要被代理类实现接口,jdk的动态代理就是这种方式二、通过继原创 2013-03-20 16:10:15 · 714 阅读 · 0 评论 -
设计模式之外观模式(Facade)
外观模式又称门面模式, 所谓外观,就是为子系统对外提供的一组接口提供一个统一的界面,使其他系统对该系统的访问都是通过这个统一界面来完成的。我们来看一个小例子:某系统有三个类A类、B类、C类,分别完成某项功能: package com.dxy.design.pattern.builder.facade;public class A { public static原创 2013-08-02 14:56:31 · 801 阅读 · 0 评论 -
设计模式之装饰模式(Decorator)
装饰模式就是使用被装饰类的一个子类实例,在客户端将这个子类的实例委托给装饰类,装饰模式是继承关系的一个替代方案。装饰模式在java io、junit中有很好的应用。 我们来看一个彩铃的例子:某手机在设计时只有打电话的功能:Phone.java:package com.dxy.design.pattern.decorator;public class Phone {原创 2013-08-03 15:47:09 · 779 阅读 · 0 评论 -
设计模式之模板方法模式(Template Method)
本来打算按照书上的讲的设计模式一个一个学下来,但是读spring源码的时候遇到模板方法模式,不懂,就提前先学一下。模板方法模式就是定义一个算法执行的骨架,而具体的算法被延迟到子类中去实现,在spring中很多地方都使用到了模板方法模式,比如spring的JdbcTemplate,spring的HibernateTemplate中都是用了模板方法模式。我们来看一个例子说明为什么要使用模板方法原创 2013-08-02 22:56:50 · 926 阅读 · 0 评论 -
设计模式之适配器模式(Adapter)
适配器模式就是将一个系统的接口转换成另一种形式,从而使原来不能直接调用的接口可以调用。 在上篇文章当中,我们提到了外观模式,外观模式为外系统的调用提供了一个统一的接口,以此来降低系统间的耦合度,那么我们来想一下这样的应用场景,假如有多个外系统要调用子系统的统一接口的某个方法,但是他们所需要的返回值又是不同的类型,比如说有的需要返回string类型,有的需要返回Map类型等,而如果针对每个外原创 2013-08-02 16:20:34 · 744 阅读 · 0 评论 -
设计模式之单例模式(Singleton)
开始研究一下设计模式,就从自己熟悉一些的开始吧 见词知意,所谓的单例也就是指只能有一个实例,单例模式最常见的有饿汉式和懒汉式两种。饿汉式单例类在类初始化时已经自行的初始化了:public class Singleton1 { //私有的默认构造子 private Singleton1() {} //已经自行实例化 private s原创 2013-03-02 21:21:53 · 542 阅读 · 0 评论 -
设计模式之原型模式(Prototype)
原型模式就是通过一个原有的原型对象来表明要创建对象的类型,然后通过复制这个原型对象来创建同类型的对象。 当我们在写一个应用的时候,假如有一个对象,并且这个对象包含了一些有效值,而我们需要和该对象完全相同的新对象来做其他操作,这时我们就可以使用Prototype模式了,通过复制原有的对象,然后在复制后的对象上进行所需操作。我们看一个例子:原创 2013-08-02 11:36:14 · 748 阅读 · 0 评论 -
设计模式之创建者模式(Builder)
创建者模式就是将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示,而且客户端不用知道对象的构建细节 我们先来了解一下为什么要用创建者模式: 假如我们要组装一台摩托车,我们需要螺丝、螺母、轮胎、发动机等许多零件,这些零件有的有联系有的没联系,但最终都会组装到一台摩托车上,假如我们用工厂模式或抽象工厂模式来设计,那么很难进行工厂类的划分,即使我们划分好了工厂原创 2013-08-02 10:40:32 · 786 阅读 · 0 评论 -
为什么要用工厂模式
工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A(). 工厂模式也是用来创建实例对象的,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。类Sample为例,要创建Sample的实例对象:Sample sample=new Sample();可是,实际情况是,通常我们都要在创建sample实例时做点初始化的工作,原创 2013-06-02 16:04:17 · 2447 阅读 · 0 评论 -
设计模式之桥模式(Bridge)
桥模式就是将抽象与其实现解耦,使他们可以分别独立的变化,这里所说的实现并不是我们所了解的派生类对抽象类的实现,桥模式中的抽象指的是抽象类及派生类,实现指的是这些抽象类及派生类实现自己的方式。桥模式也是继承关系的一种替代实现。原创 2013-08-05 15:51:06 · 828 阅读 · 0 评论