Java学习笔记---设计模式之简单工厂模式

时间:2020-12-06 20:29:03

一、引言

每天进步一点点,每天快乐一点点。

二、什么是简单工厂模式

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

三、简单工厂模式类图

Java学习笔记---设计模式之简单工厂模式

四、简单工厂模式的适用性

  • 当一个类不知道它所必须创建的对象的类的时候。 
  • 当一个类希望由它的子类来指定它所创建的对象的时候。 
  • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。 

五、简单工厂模式中需要的角色

1)工厂角色:这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
       2)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
        3)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
       

六、举例说明

上面的都是理论层面的,下面看看实现代码吧。

代码结构如下:

Java学习笔记---设计模式之简单工厂模式

Product.java

package designModeSimpleFactoryTest;

//抽象产品角色
public interface Product {

public void doSomething();
}
ProductA.java

package designModeSimpleFactoryTest;

//具体产品A角色
public class ProductA implements Product{

public ProductA(){
System.out.println("ProductA is create");
}

public void doSomething(){
System.out.println("A do something");
}
}

ProductFactory.java

package designModeSimpleFactoryTest;

//工厂角色
public class ProductFactory {

public Product create(){

return new ProductA();
}
}

SimpleFactoryTest.java

package designModeSimpleFactoryTest;


//测试类
public class SimpleFactoryTest {


public static void main(String args[]){

//工厂生产产品
ProductFactory factory=new ProductFactory();

Product product= factory.create();

product.doSomething();


}
}

运行结果

ProductA is create
A do something

七、总结

简单工厂模式功能十分单一,只生产一种产品,实现工厂角色的工厂类负责了生产产品的所有工作。简单工厂模式是由一个具体的类去创建其他类的实例,父类是相同的,父类是具体的。


/*
QQ讨论群组:372702757
*/