1、简单介绍
工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式。该模式用于封装和管理对象的创建,是一种创建型模式。
2、简单工厂模式
下面我们使用手机生产来讲解该模式:
定义手机标准规范类
public interface Phone {void make();}
定义具体实现类
public class MiPhone implements Phone {public MiPhone() {this.make();}@Overridepublic void make() {System.out.println("造小米手机");}}public class IPhone implements Phone {public IPhone() {this.make();}@Overridepublic void make() {System.out.println("造苹果手机");}}
手机代工厂
public class PhoneFactory {public Phone makePhone(String phoneType) {if (phoneType.equalsIgnoreCase("MiPhone")) {return new MiPhone();} else if (phoneType.equalsIgnoreCase("iPhone")) {return new IPhone();}return null;}}
测试
public class PhoneDemo {public static void main(String[] arg) {PhoneFactory factory = new PhoneFactory();// 造小米Phone miPhone = factory.makePhone("MiPhone");// 造苹果IPhone iPhone = (IPhone)factory.makePhone("iPhone");}}
3、工厂方法模式
和简单工厂模式中工厂负责生产所有产品相比,工厂方法模式将生成具体产品的任务分发给具体的产品工厂。
定义工厂抽象类
public interface AbstractFactory {Phone makePhone();}
定义工厂实现类
public class XiaoMiFactory implements AbstractFactory {@Overridepublic Phone makePhone() {return new MiPhone();}}public class AppleFactory implements AbstractFactory {@Overridepublic Phone makePhone() {return new IPhone();}}
测试
public class demo {public static void main(String[] arg) {// 小米工厂造小米AbstractFactory miFactory = new XiaoMiFactory();miFactory.makePhone();// 苹果工厂造苹果AbstractFactory appleFactory = new AppleFactory();appleFactory.makePhone();}}

