(所有源码均在:https://github.com/zongzhec/JavaPractise)
目录
简单工厂模式
生活中的例子
无工厂:手工
缺点:麻烦,对每个人要求比较高
优点:个性化
工厂:生产产品
优点:批量生产,使用者比较方便
缺点:不易定制
Java中的描述
Java中当创建对象比较麻烦时,或者是需要批量生产对象时,可以交给“工厂类”来生产。
简单工厂类的作用
生产Java对象,一般是用来生产某个接口的实现类对象。
好处:把对象的使用者与创建者分离,把使用者与具体的实现类解耦合。
特点
1. 有一个接口;
2. 一系列的实现类;
3. 一个工厂类,有一个生产对象的方法
优点
1. 简单
缺点
1. 如果增加接口的实现类,需要修改工厂类代码。违反了面向对象的开发原则——“对修改关闭,对扩展开放”。
源码
package zongzhe.design_pattern.simple_factory;
public class SimpleFactDemo {
public static void main(String[] args) {
// 没有工厂的时候
BMW bmw = new BMW();
// 使用工厂类
Car car = SimpleFactory.getCar("BMW");
car.run();
}
}
interface Car {
void run();
}
class BMW implements Car {
@Override
public void run() {
System.out.println("BMW");
}
}
class Benz implements Car {
@Override
public void run() {
System.out.println("Benz");
}
}
class Audi implements Car {
@Override
public void run() {
System.out.println("Audi");
}
}
class SimpleFactory {
public static Car getCar(String type) {
switch (type) {
case "BMW":
return new BMW();
case "Benz":
return new Benz();
case "Audi":
return new Audi();
default:
return null;
}
}
}