
设计模式
iteye_17821
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单例模式
1.定义 保证一个类只有一个实例,并提供一个全局访问点。 2.使用动机 1)系统中只允许有一个(例如操作系统的文件管理器),通过提供一个单例类,由类自身来保证不会创建类的多个实例,类自身来持有它唯一的实例,并且提供一个获取该实例的方法。这就是单例模式。 2)对象提供了一系列的方法供客户端频繁调用,但是又不希望频繁的创建对象,以减少对象创建和GC的时间,可以将对象做成单例模式的。 ...2015-01-12 21:48:09 · 117 阅读 · 0 评论 -
模板方法模式
1.定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2.适用场景 1)HttpServlet的service()方法。HttpSerlvet在service方法中调用doGet()和doPost()等方法,用户定义的Servlet继承自HttpServlet,重写其中的方法,由父类统一调用子类的方法。 ...2015-01-23 23:37:08 · 97 阅读 · 0 评论 -
适配器模式
1.定义 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。 2.适用场景 1)改造遗留系统或者使用第三方系统,原系统的接口跟新系统不符,无法一起工作。适配器模式的前提是原系统的接口无法修改,新系统的接口也无法修改成跟原系统的接口匹配,两个都不能改,引入一个Adapter,来适配一下。 2)现实中的例子。手机充电器、电源...2015-01-22 23:43:34 · 105 阅读 · 0 评论 -
桥接模式
1.定义 将抽象部分和它的实现部分分离,使他们都可以独立的变化。 2.适用场景 1)某个类具有两个或者两个以上的维度变化,可以使用桥接模式进行分离这两种维度的变化,例如您是一个服装制造商,既生产棉服,也生产T恤衫,每种衣服既有红色的,又有绿色的,这就出现了两个变化的维护,就可以通过桥接模式实现,下面用具体代码来实现这个示例。 2)多数据库支持。如果您的应用要支持多种数据库,通过提供不同的实...2015-01-22 23:41:47 · 90 阅读 · 0 评论 -
代理模式
1.定义 为其它对象提供一种代理以控制对这个对象的访问。 2.应用场景 1)Spring AOP。Spring AOP底层就是使用动态代理来实现的,Spring将切面织入到代理对象中。 Spring AOP :[url] http://frank1234.iteye.com/blog/2170678[/url] 2)Hibernate延迟加载。Hibernate提供了延迟加载机制,使用延...2015-01-21 12:49:00 · 141 阅读 · 0 评论 -
外观模式
1.定义 外观模式也称为门面模式,英文名称是Facade,为子系统的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。 外观模式的结构示意图如下: [img]http://dl2.iteye.com/upload/attachment/0105/4050/368cf7ae-1648-342e-98e5-9ebcee7a9808.jp...2015-01-19 22:06:11 · 106 阅读 · 0 评论 -
观察者模式
1.概述 观察者模式也称为"依赖"(Dependents)或者"发布-订阅"(Publish-Subscribe),观察者模式的官方定义是:定义对象间的一种[color=red][b]一对多的依赖关系[/b][/color],当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。 只要存在一对多的依赖时,就可以使用观察者模式。 2.适用性 1)一个抽象模型有两个方面,...2015-01-19 22:03:48 · 101 阅读 · 0 评论 -
装饰者模式
1.定义 装饰者模式也成为包装器Wrapper模式,它可以动态的给一个对象添加一些额外的职责,就增加功能而言,装饰者模式相比生成子类更加灵活。 2.应用场景 1)希望给某个对象增加功能,而不是给某个类增加功能时。 2)需要增加由一些基本功能的排列组合而产生的非常大量的功能,会造成子类呈爆炸性增长,从而使继承关系变的不现实时。 3.应用举例 1)Java I/O类库。Java I/O...2015-01-18 17:50:29 · 112 阅读 · 0 评论 -
策略模式
1.定义 定义一系列的算法,把他们封装起来,并且使他们可以相互替换,此模式使算法可以独立于使用它的客户而变化。 2.适用场景 1)需要使用一个算法的不同实现。 2)算法使用客户不应该知道的数据,可以通过策略模式避免暴露与算法相关的数据结构。 3.类图 [img]http://dl2.iteye.com/upload/attachment/0105/3770/d6352298-...2015-01-18 17:49:12 · 92 阅读 · 0 评论 -
工厂模式
1 工厂模式 工厂模式我们随处可见,工厂模式用来创建类的实例,将类的创建从客户端移到统一的对象创建工厂中。工厂模式的主要优势是隔离了客户端与具体对象的创建,由工厂类负责对象的实例化,客户端只需要告诉工厂类需要什么对象,而不需知道到底实例化的是哪个对象,实现了客户端与对象创建的解耦。 工厂模式有三种: 1)简单工厂模式。 2)工厂方法模式。 3)抽象工厂模式。 这三个模式的复杂度从上而下...2015-01-17 18:47:11 · 102 阅读 · 0 评论 -
享元模式
1.定义 运用共享技术有效的支持大量细粒度的对象。 2.适用场景 1)应用使用了大量的对象,并且造成了大量的存储开销。例如编辑一个文档,会有大量重复的字符,如果每个都创建一个新的对象,会造成很大的内存开销。 3.类图 [img]http://dl2.iteye.com/upload/attachment/0105/5805/61459298-f9d5-3464-9aaa-7f5...2015-01-26 10:19:51 · 92 阅读 · 0 评论