所谓工厂,就是用来生产产品的地方,使用简单工厂模式的好处就是可以不用去实例化具体类,比如你有bird类,duck类,如果你要使用其中的方法,那么你就要去实例化所有的类才能去调用,这样不易于扩展。如果我们直接抽象出一个类,里面有fly、speak,walk等方法,这样做起来岂不是很方便,请看如下代码:
//这个就是简单工厂抽象类
package com.hy.simple_factory;
public abstract class Animal {
public void fly(){};
public void speak(){};
public void walk(){};
}
//具体实现类(bird类)
package com.hy.simple_factory;
public class Bird extends Animal{
@Override
public void fly() {
System.out.println("bird is fly");
}
}
//具体实现类(duck类)
package com.hy.simple_factory;
public class Duck extends Animal{
@Override
public void speak() {
System.out.println("duck is speak");
}
}
//简单工厂测试类
package com.hy.simple_factory;
public class SimpleFactoryModel {
private Animal animal = null;
public Animal test(String opration) {
if ("duck".equals(opration)) {
animal = new Duck();
animal.speak();
} else if ("bird".equals(opration)) {
animal = new Bird();
animal.fly();
}
return animal;
}
}