首页 > 代码库 > 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());
未完待续