一、概述
简单工厂模式 (Simple Factory) ,又称静态工厂方法模式,是类的创建模式。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类
详细说明如下:
一个具体工厂 通过条件语句创建多个产品,产品的创建逻辑集中与一个工厂类。
客户端通过 传不同的参数给工厂,实现创建不同产品的目的
增加新产品时,需要修改工厂类、增加产品类,不符合OCP原则
二、具体代码
简单工厂模式 (Simple Factory) ,又称静态工厂方法模式,是类的创建模式。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类
详细说明如下:
一个具体工厂 通过条件语句创建多个产品,产品的创建逻辑集中与一个工厂类。
客户端通过 传不同的参数给工厂,实现创建不同产品的目的
增加新产品时,需要修改工厂类、增加产品类,不符合OCP原则
二、具体代码
- //生产产品的工厂类
- public class ProductFactory{
- public static Product generateProduct(int which){ //这个方法是static的
- if (which==1)
- return new ProductA();
- else if (which==2)
- return new ProductB();
- }
- }
- //抽象产品
- public interface Product {
- .....
- }
- //具体产品A
- public ProductA implement Product {
- ProductA () {}
- }
- //具体产品B
- public ProductB implement Product {
- ProductB () {}
- }
- //调用工厂方法
- public Client {
- public method1() {
- ProductFactory.generateProduct(1);
- }
- }
//生产产品的工厂类
public class ProductFactory{
public static Product generateProduct(int which){ //这个方法是static的
if (which==1)
return new ProductA();
else if (which==2)
return new ProductB();
}
}
//抽象产品
public interface Product {
.....
}
//具体产品A
public ProductA implement Product {
ProductA () {}
}
//具体产品B
public ProductB implement Product {
ProductB () {}
}
//调用工厂方法
public Client {
public method1() {
ProductFactory.generateProduct(1);
}
}
- interface a{}
- class b implements a{};
- class c implements a{};
- //工厂类
- public class factory{
- public static a createa(string name){
- class cls=class.forname(name);
- object obj=cls.getinstance();
- return (a)obj;
- }
- }
- //创建实例时
- a b=factory.createa("b");
- a c=factory.createa("c");