首页 > 代码库 > java常用设计模式

java常用设计模式

1.工厂设计模式.

参照:http://www.cnblogs.com/zhouqiang/archive/2012/07/20/2601365.html

有三种:简单工厂(Simple Factory)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)

简单工厂:

1.同类产品抽象出接口IProduct,具体的产品实现这个接口

2.定义类Factory,提供可以得到具体产品的静态方法getProduct

要得到具体产品时,就直接调用Factory.getProduct来得到. 如有同类的多种商品,可以在getProduct方法中设置参数,或定义多个getProduct方法:getProductA()getProductB()getProductC()

工厂方法:

1.产品抽象出接口IProduct,具体的产品实现这些接口

2.定义工厂接口IFactory,定义不同具体工厂FactoryA,FactoryB…等,不同的工厂提供不同的产品,这些具体工厂不使用静态方法提供.

要得到具体产品,先得到具体工厂(new),根据某工厂得到某产品.

抽象工厂:

1.产品抽象出接口IProduct,不同系列的子产品抽象出接口IProductA,IProductB等,具体的产品实现这些接口

2.定义工厂接口IFactory,定义不同具体工厂Factory1,Factory2…等,不同的工厂提供不同系列的产品,这些具体工厂不使用静态方法提供.

例如

产品接口: 车门 轮胎 零件

产品具体实现: 宝马车门 大众车门 宝马轮胎 大众轮胎 宝马零件 大众零件

工厂: 车间

具体工厂:宝马车间(提供宝马相关产品)  大众车间(提供大众相关产品)

2.单例设计模式:

目的是保证某类的对象在内存当中唯一,有饿汉式和懒汉式两种:

饿汉式: 加载时就初始化

class Singleton{

private Singleton(){}

private static Singleton instance = new Singleton();

public static Singleton getInstance() { return instance; }

}

懒汉式: 用到时再创建实例

class Singleton{

private Singleton(){}

private static Singleton instance;

public static Singleton getInstance() {

   if (instance == null)

     synchronized (Singleton.class) {

         if (instance == null) instance = new Singleton();

     }

   return instance;

}

}

3.原型模式(Prototype):

在java中就是克隆(clone),通过克隆原型来获取新的对象.

类实现Cloneable接口,重写clone方法

4.建造者模式:

1.提供用于提供产品的组成部分的类,例如:生产车间Builder:(提供各种方法生产:车门 轮胎 零件等)

2.提供如何组装产品的类,例如: 组装车间Director (提供方法:组装construct)

要得到产品,先有了生产车间,组装车间通过调用生产车间的各个方法生产需要的part并组装,提供产品.

Director director= new Director();Product product = director.construct(new Builder());

未完待续