简单工厂模式是指类的实例是由一个工厂对象来决定创建,工厂类里面写方法来实现对象的创建。
之前创建对象都是new出来的,那如果单身汉字想要女朋友,难道也要自己new出来吗,那肯定不行滴。这个就需要让别人帮忙介绍小姐姐。
情景:单身小伙子想和小姐姐出去玩耍,首要问题就是要找到小姐姐。
之前是靠自己new出来
StudentGirl girl = new StudentGirl ();
现在找姐姐的事情交给别人做,单身小伙只需要考虑不同类型的女孩玩什么
public interface Girl{
void play();
}
public class StudentGirl implements Girl{
public void play() {
System.out.println("吃美食");
}
}
public class YoungGirl implements Girl{
public void play() {
System.out.println("逛街....");
}
}
这个时候就需要找朋友介绍小姐姐了
public class GirlFactory {
public Girl create(Class<? extends Gilr> name){
try {
if(name != null) {
return name.newInstance();
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null ;
}
}
开始交友
public class MyTest {
public static void main(String[] args) {
GirlFactory factory = new GirlFactory();
Girl student = factory.create(StudentGirl.class);
student.play();
Girl young = factory.create(YoungGirl.class);
young.play();
}
}
总结:工厂方法模式中,对象的创建是由对对应的工厂去实现,例如汽车是由汽车工厂生产,玩具是由玩具工厂生产。调用者只需要关心调用对应的工厂。但是我们发现一个工厂的流水线既可以生产汽车,又可以生产玩具,一旦有需求变化,只能修改流水线,这样也违背了单一原则的设计。那我们就可以考虑工厂方法的设计模式。