简单工厂模式
简单工厂模式举例:一位老板去玩具工厂下订单,玩具工厂生产两种玩具,通过老板的要求生产其玩具。
首先创建一个工厂类,采用单例模式:
public class Factory{
static final int IRON_MAN = 1; //定义玩具种类;
static final int CAPTAIN = 2;
private Factory factory = new Factory(); //单例模式创建实例
private Factory(){}
public static Factory getInstance(){ //静态方法返回实例
return factory;
}
public Toy produceToy(int type){ //根据参数创建不同的玩具,使用了多态
Toy toy = null; //父类引用
if(type == IRON_MAN){
toy = new IronMan();
}else if(type == CAPTIAN){
toy = new Captian();
}
return toy;
}
}
创建一个玩具抽象类:(因为不同的玩具外观和玩法不同)
public class abstract Toy{
public abstract void say();
}
创建不同的玩具类继承抽象玩具类并实现其中的方法:
public class IronMan extends Toy {
public IronMan(){}
public void say(){
System.out.println("我是钢铁侠...");
}
}
public class Captain extends Toy{
public Captain(){}
public void say(){
System.out.println("我是美国队长...");
}
}
在main
方法中测试:
Factory factory = Factory.getInstance();
Toy toy = factory.produce(Factory.IRON_MAN);
toy.say();
Toy toy2 = factory.produce(Factory.CAPTIAN);
toy2.say();