定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,共方法使一个类的实例化延迟到子类
工厂模式他的关键是:将创建对象和使用对象分开
/**
* 声明产品接口
*/
public interface ICar{
public void productMethod();
}
/**
* 产品实现类
*/
public class BenChi implements ICar{
private String 发动机 ;
private String 轮胎 ;
public BenChi(String 发动机, String 轮胎){
this.发动机 = 发动机;
this.轮胎 = 轮胎;
}
@Override
public void productMethod() {
System.err.println(发动机+ 轮胎);
}
}
/**
* 工厂接口
*/
public interface IFactory{
public ICar createBenChi();
}
/**
* 工厂实现类
*/
public class Factory implements IFactory{
@Override
public ICar createBenChi() {
String 发动机 = "奔驰发动机";
String 轮胎 = "奔驰轮子";
ICar benchi = new BenChi(发动机, 轮胎);
return benchi;
}
}
工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、本文所讲述的工厂方法模式、以及抽象工厂模式
作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过new就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度。
简单工厂:当一个类有多个构造器,因为构造器名称都相同,可以用静态工厂方法来区分