该模式有3个成员:接口(抽象类)、实现类、工厂类
接口
package model01.simple.factory;
/**
* 水果
*/
public interface Fruit{
//种植
public void plant();
}
实现类
package model01.simple.factory;
/**
* 实现类
*/
public class Apple implements Fruit{
//实现方法
public void plant(){
System.out.println("种植了一棵苹果树");
}
}
工厂类
package model01.simple.factory;
/**
* 工厂类
*/
public class SimpleFactory{
public static Fruit factory(String name){
if("apple".equals(name.toLowerCase())){
return new Apple();
}
}
}
简单工厂模式的优缺点:
优点:
1:通过使用工厂类,外界可以直接使用具体产品对象而不必管这些对象究竟如何创建及如何组织的。明确了各自的职责和权利。缺点:
1:由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中2:它违反了“开-闭”(对增加开发,对修改关闭)原则。如果要重新添加一个实现了,则需要在工厂类中添加新的业务代码