所谓工厂,就是用来生产产品的地方,使用简单工厂模式的好处就是可以不用去实例化具体类,比如你有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; } }
