一、什么是简单工厂模式?
简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
二、模式中包含的角色及其职责?
1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
2.抽象(Product)角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
3.具体产品(Concrete Product)角色 简单工厂模式所创建的具体实例对象
package com.product;
public interface Fruit {
/**
* 采摘
*/
public void get();
}
package com.product;
public class Apple implements Fruit{
@Override
public void get() {
System.out.println("采摘苹果");
}
}
package com.product;
public class Banana implements Fruit{
@Override
public void get() {
System.out.println("采摘香蕉");
}
}
package com.product;
public class FruitFactory {
/**
* 通过水果名字,返回一个水果
* 工厂方法应该是静态方法
*/
public static Fruit getFruit(String type) throws Exception{
if(type.equalsIgnoreCase("apple")){
return Apple.class.newInstance();
}else if(type.equalsIgnoreCase("banana")){
return Banana.class.newInstance();
}else{
System.out.println("没有找到该水果");
return null;
}
}
}
package com.product;
/**
* 顾客类
* @author Owner
*
*/
public class Customer {
public static void main(String[] args) throws Exception {
//通过工厂获取水果实例
Apple apple = (Apple) FruitFactory.getFruit("apple");
Banana banana = (Banana) FruitFactory.getFruit("banana");
apple.get();
banana.get();
}
}