简单工厂模式(静态工厂模式)
(1)关系图:
(2)优点:
1.客户端无需知道创建产品的具体逻辑,只需要知道产品创建的参数即可
2.可以在不修改客户端代码的情况下添加新的产品和修改旧的产品
(3)缺点
1.添加新产品需要修改工厂类的逻辑,不利于系统扩展和维护,不符合开闭原则
2.简单工厂模式使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构
(4)Java代码实例
①Factory
public class CarFactory {
public static Car getCar(String type) throws Exception{
if(type.equals("Benz")){
return new Benz();
}else if(type.equals("Audi")){
return new Audi();
}else{
throw new Exception();
}
}
}
②ProductParent
public abstract class Car {
public abstract void drive();
}
③Product
public class Audi extends Car{
@Override
public void drive() {
// TODO Auto-generated method stub
System.out.println("Audi");
}
}
public class Benz extends Car{
@Override
public void drive() {
// TODO Auto-generated method stub
System.out.println("Benz");
}
}
④Main
public class Main {
static public void main(String [] args) throws Exception
{
CarFactory factory = new CarFactory();
Car car = factory.getCar("Audi");
car.drive();
car = factory.getCar("Benz");
car.drive();
}
}
(5)JDK中应用