java设计模式——工厂方法模式
·
工厂方法模式:为工厂类定义了接口,使用多态来削弱工厂类的职责。 * 将简单工厂创建对象的职责分担到子工厂类中,子工厂相互独立,互相不受影响。 * 工厂方法模式也有他的局限性,当面对有复杂的树形结构的产品时,就必须为 * 每个产品创建一个对应的工厂类,当达到一定数量级就会出现类爆炸。 * 整体结构: 1.创建产品接口 * 2. 定义产品类去实现产品接口 * 3.定义(总)工厂接口,并在接口中定义创建产品工厂的方法(eg:create();) * 4.定义子(产品)工厂类,并在create方法中返回产品。(即return new xxxProduct();) * 5.在Main中根据工厂去创建不同的产品工厂。
实例:
package com.henu.factory;
/**
* @author George
* @description 工厂方法模式:为工厂类定义了接口,使用多态来削弱工厂类的职责。
* 将简单工厂创建对象的职责分担到子工厂类中,子工厂相互独立,互相不受影响。
* 工厂方法模式也有他的局限性,当面对有复杂的树形结构的产品时,就必须为
* 每个产品创建一个对应的工厂类,当达到一定数量级就会出现类爆炸。
* 整体结构: 1.创建产品接口
* 2. 定义产品类去实现产品接口
* 3.定义(总)工厂接口,并在接口中定义创建产品工厂的方法(eg:create();)
* 4.定义子(产品)工厂类,并在create方法中返回产品。(即return new xxxProduct();)
* 5.在Main中根据工厂去创建不同的产品工厂。
**/
public class TestFactoryMethodPattern {
public static void main(String[] args) {
//根据工厂去创建产品(即实例化对象)
Factory factory = null;
factory = new PhoneFactory();
//创建手机
factory.create();
//创建电脑
new ComputerFactory().create();
}
}
//定义产品接口
interface Product{}
//定义手机类
class Phone implements Product{
//无参构造方法
public Phone() {
System.out.println("Phone被创建了!");
}
}
//定义电脑类
class Computer implements Product{
public Computer() {
System.out.println("电脑被创建了!");
}
}
//定义工厂接口
interface Factory{
public Product create();
}
//定义手机工厂
class PhoneFactory implements Factory{
@Override
public Product create() {
return new Phone();
}
}
//定义电脑工厂
class ComputerFactory implements Factory{
@Override
public Product create() {
return new Computer();
}
}
更多推荐


所有评论(0)