1.首先创建一个接口
package mblog.factory;
public interface SimpleFactoryInterface {
void println(); void song(); }
2.创建一个抽象类实现这个接口
package mblog.factory;
public abstract class SimpleFactoryPattern implements SimpleFactoryInterface {
public static SimpleFactoryPattern createFactoryInstance(String bussName){ if("student".equals(bussName)) { return new StudentFactoryInst(); } if("teacher".equals(bussName)) { return new TeacherFacatoryInst(); } return null; } } 3.创建一个接口实现的子类student
package mblog.factory;
public class StudentFactoryInst extends SimpleFactoryPattern{
@Override public void println() { System.out.println("I ' m StudentFactoryInst"); }
@Override public void song() { System.out.println("I' m student song "); }
} 4.创建一个借口实现的子类teacher
package mblog.factory;
public class StudentFactoryInst extends SimpleFactoryPattern{
@Override public void println() { System.out.println("I ' m StudentFactoryInst"); }
@Override public void song() { System.out.println("I' m student song "); }
} 5.测试类
package mblog.factory;
public class TestMain {
public static void main(String[] args) { SimpleFactoryPattern simpleFactoryPattern= SimpleFactoryPattern.createFactoryInstance("student"); simpleFactoryPattern.println(); } } 个人感觉就是父类指向子类对象的引用
简单工厂模式最大的优点在于实现对象的创建和对象的使用分离,将对象的创建交给专门的工厂类负责,但是其最大的缺点在于工厂类不够灵活,增加新的具体产品需要修改工厂类的判断逻辑代码,而且产品较多时,工厂方法代码将会非常复杂。
简单工厂模式适用情况包括:工厂类负责创建的对象比较少;客户端只知道传入工厂类的参数,对于如何创建对象不关心。
Next Previous