
设计模式
文章平均质量分 85
huey2672
这个作者很懒,什么都没留下…
展开
-
工厂方法模式
工厂方法模式:定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象,也就是将实际创建实例对象的工作推迟到子类当中,核心工厂类不再负责具体产品的创建。可以这样理解工厂模式:由一个抽象工厂定义了创建产品的接口,但是具体是哪一种产品抽象工厂是不知道的,产品的实例化工作被推迟到具体工厂中。 代码实现: 抽象产品: package com.demo.factorymethod.pro原创 2013-03-06 21:11:22 · 463 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式提供了一个接口,用于创建相关或者依赖对象的家族,而不需要指定具体实现类。 抽象工厂模式允许客户使用抽象接口来创建一组相关的产品,客户类和工厂类分开,客户需要任何产品的时候,只需要向工厂请求即可,客户无须修改就可以获得新产品。这样一来,客户就从具体产品中解耦。 代码实现: 抽象产品: package com.demo.abstractfactory.product;原创 2013-03-06 23:03:18 · 561 阅读 · 0 评论 -
原型模式
原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。 原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。 代码实现: 原型基类: package com.demo.prototype.prot原创 2013-03-22 13:03:05 · 542 阅读 · 0 评论 -
单例模式
单例模式:确保某一个类有且只有一个实例,而且自行实例化并向整个系统提供这个实例。 代码实现: 懒汉式单例: package com.huey.demo.singleton.lazy; public class Singleton { private static Singleton singleton = null; /* ** 私有的构造方法 */原创 2013-03-23 00:07:48 · 528 阅读 · 0 评论 -
建造者模式
将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。 代码实现: 产品类: package com.demo.builder.product; public class Product { public String component1; // 部件1 public String component2; // 部件2原创 2013-03-22 00:02:10 · 496 阅读 · 0 评论 -
适配器模式
适配器模式,把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法再一起工作的两个类能够在一起工作。 适配器模式分两种:对象适配器模式和类适配器模式 对象适配器模式——组合实现。 类适配器模式——集成实现。 现在,现在有一只老虎,它会奔跑这不用说,现在我们要让它“如虎添翼”,让它会飞! 代码实现: 动物基类: package com.demo.adapter原创 2013-03-24 00:36:22 · 513 阅读 · 0 评论 -
观察者模式
观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。例如,当上课时间到时,铃声便会响起通知老师和同学们准备去上课了。 类图: 代码实现: 观察者接口: package com.demo.observer.observer; public interface Observer { public void原创 2013-04-11 22:14:14 · 522 阅读 · 0 评论 -
装饰者模式
装饰者模式,是在不改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 装饰者模式中的角色: (1) 被装饰者抽象Component,是一个接口或抽象类,就是定义最核心的对象,也是最原始的对象,这个类是需要装饰类的基类。 (2) 被装饰者具体实现ConcreteComponent,是Component类的一个实现类,要装饰的就原创 2013-04-21 17:14:07 · 486 阅读 · 0 评论 -
策略模式
策略模式,定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。 策略模式中的角色: (1) 抽象策略角色,抽象策略角色通常由一个接口或抽象类实现,定义公共的策略方法。 (2) 具体抽象角色,具体策略角色实现具体的策略算法,封装相关的算法和行为。 (3) 上下文环境角色,上下文环境角色中含有一个对具体策略对象实例的引用,最终供客户端应用原创 2013-04-11 23:51:45 · 547 阅读 · 0 评论