
Java Pattern
james_zhg
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Command模式
Command模式,对功能的调用和功能的实现进行解藕。功能的调用者不用知道具体的功能是怎样实现的,使用了接口,具有很大的灵活性,使代码稳健、可维护、可复用。 下面是一个简单的例子,首先建立一个接口ICommand, public interface ICommand { void execue(); } 然后是两个实现了这个接口和具体功能的实用类: public class Prin...2007-07-25 17:18:50 · 101 阅读 · 0 评论 -
Bridge模式
Bridge模式,将抽象部分与实现部分分离,使它们都可以独立的变化。[GOF 《设计模式》] 以日志记录工具为例子来说明Bridge模式。现在我们要开发一个通用的日志记录工具,它支持数据库记录DatabaseLog和文本文件记录FileLog两种方式,同时它既可以运行在.NET平台,也可以运行在Java平台上。 根据我们的设计经验,应该把不同的日志记录方式...2007-08-22 16:40:58 · 104 阅读 · 0 评论 -
flyweight模式
flyweight模式,即享元模式,属于结构模式的一种,通过共享相同的数据对象,避免产生重复,从而提高内存的使用效率和程序的运行速度。 Flyweight有两个重要的概念,内部状态intrinsic和外部状态extrinsic。Flyweight的内部状态用来共享数据对象。 Flyweight模式中常出现在Factory模式中。Flyweight factory...2007-08-22 14:51:32 · 102 阅读 · 0 评论 -
facade模式
facade模式,即外观模式,为子系统中的一组接口提供一个统一的界面。 在子系统比较复杂的时候,把子系统分散到不同的类中实现,然后由一个高层的类对这些子系统中的类进行封装,对用户类屏蔽子系统实现的细节,在一定程度上实现了系统内部的解藕,提高系统的可扩展性。 代码例子: public class SubSystemA { protected SubSy...2007-08-20 14:53:52 · 135 阅读 · 0 评论 -
Template模式
Template模板模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。 使用Java的抽象类时,就经常会使用到Template模式,因此Template模式使用很普遍.而且很容易理解和使用。 public abstract class Benchmark { /** ...2007-08-20 13:56:58 · 79 阅读 · 0 评论 -
Visitor模式
Visitor模式,在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升。 Visitor模式的组成结构: 1) 访问者角色(Visitor):声明一个访问接口。接口的名称和方法的参数标识了向访问者发送请求的元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。 2) 具体访问者角色(Concrete Visitor)...2007-08-20 10:53:11 · 118 阅读 · 0 评论 -
Builder模式
Builder模式,也是用来创建复杂的对象。 例: public interface Builder { // Builder接口 void buildPartA(); void buildPartB(); void buildPartC(); Product getResult(); } public class Direc...2007-07-31 12:05:49 · 87 阅读 · 0 评论 -
工厂模式
一般建立对象的方法是: Sample sample = new Sample(); 通过new关键词和类的构造方法来建立一个对象,可以通过向构造方法传递参数,并在构造方法中完成一些初始化的工作。但是,如果初始化的工作非常多,采用这样的方法实在不是明智的,而应该采用将创建实例的工作与使用实例的工作分开的原则,而这就是工厂模式。 工厂模式用于创建复杂的对象,创建复杂的对...2007-07-31 11:55:26 · 108 阅读 · 0 评论 -
Decorator模式
Decorator模式是对目标类的封装,我们并不去直接实用目标类,而是对目标类进行封装,在真正使用目标类的方法之前或之后进行一些其他方面的处理,就像给目标增加了一些装饰一样,所以称为Decorator模式。 首先定义一个接口: public interface Work { doSomething (); ...2007-07-29 13:59:45 · 86 阅读 · 0 评论 -
适配器模式
在某些场合,我们定义好了一些接口,在写实用类的时候需要实现这些接口,但是如果接口的抽象方法非常多,而我们没有必要实现所有的抽象方法,我们只需要想要的方法,这个时候可以考虑适配器模式。 适配器模式比较简单,但是可以给我们省去很多不必要的工作。 首先是接口 接口: public interface IAction { ...2007-07-29 13:36:20 · 103 阅读 · 0 评论 -
代理模式
1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到三个角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象...2007-07-29 11:50:00 · 88 阅读 · 0 评论 -
原型模式
java中Object已经实现了clone()的方法,所以原型模式就变得非常的简单。 public abstract class AbstractSpoon implements Cloneable { String spoonName; public void setSpoonName(String spoonName) { this.spoonNam...2007-07-26 10:21:46 · 95 阅读 · 0 评论 -
单态模式
下面是实现单态模式的两种方式: public class Singleton { private Singleton(){} //在自己内部定义自己一个实例,是不是很奇怪? //注意这是private 只供内部调用 private static Singleton instance = new Singleton(); //这里提供了一个供外部访问本class的静态方法,可以直...2007-07-26 10:15:55 · 151 阅读 · 0 评论 -
观察者模式
被观察者类继承 java.util.Observable,观察者类实现接口 java.util.Observer。被观察者在需要的方法中调用父类Observable的 setChanged() 方法和 notifyObservers(Object obj) 通知观察者。观察者类实现接口 Observer 的方法 update(Observable o, Object arg). 例: publi...2007-07-26 09:33:26 · 100 阅读 · 0 评论 -
策略(Strategy)模式
策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 使用策略模式可以把行为和环境分割开来。环境类负责维持和查询行为类,各种算法则在具体策略(ConcreteStrategy)中提供。由于算法和环境独立开来,算法的增减、修改都不会影响环境和客户端。策略模式相当于"可...2007-08-22 16:58:46 · 193 阅读 · 0 评论