简单工厂模式属于类的创建型模式,又叫静态工厂方法模式。通过专门定义一个类来负责负责创建其他类的实例对象,被创建的实例通常都有共同父类。
模式中包含的角色和职责:
1.工厂角色:简单工厂的核心,负责实现创建所有实例的内部逻辑。工厂类可以直接被外界调用,创建对应的对象
2.抽象角色:简单工厂所创的所有对象的父类,它负责提供所有实例所共有的公共接口
3.具体产品角色:简单工厂模式所创建的具体实例对象
一个简单工厂模式的实现
抽象角色--所有实例对象的父类,描述所有实例对象的共有接口
public interface Flower {
public void open();
}
具体实例对象
public class Rugosa implements Flower{
public void open() {
System.out.println("玫瑰花开了");
}
}
public class Chrysanthemum implements Flower {
public void open() {
System.out.println("菊花开了");
}
}
工厂类--工厂角色
public class FlowerFactory {
//通过传入的类型创建具体的对象
public static Flower getBean(String type){
try {
return (Flower) Class.forName("com.zgs.factory."+type).newInstance();
} catch (Exception e) {
}
return null;
}
}
测试
public class FactoryMain {
public static void main(String[] args) {
//简单工厂模式的测试
Flower rugosa = FlowerFactory.getBean("Rugosa");
Flower chrysanthemum = FlowerFactory.getBean("Chrysanthemum");
rugosa.open();
chrysanthemum.open();
}
}
运行结果