工厂模式-java案例
核心思想:想用产品时,我不需要知道这个产品是怎么生成出来,我只想使用这个产品。
使用者只使用,创建由工厂类完成。
比如有一个父类叫手机类,它有三个子类分别为:华为手机类,小米手机类,oppo手机类。
使用者只需要告诉工厂要什么对象,工厂就创建什么对象返回给使用者。
之所以叫工厂模式,正是因为它像极了现实生活,普通人想拥有一部手机,但他不可能从零把手机生产出来,而是跟手机工厂说:“我想要一台华为手机,你造好了给我吧。”
手机工厂的职责就是负责生产手机,它是专业的。
interface Phone { public void call(); } class Huawei implements Phone { @Override public void call() { System.out.println("华为手机"); } } class XiaoMi implements Phone { @Override public void call() { System.out.println("小米手机"); } } class Oppo implements Phone { @Override public void call() { System.out.println("OPPO手机"); } } class PhoneFactory { public static Phone getPhone(String type) { if (type == null) { return null; } if ("huawei".equalsIgnoreCase(type)) { return new Huawei(); } else if ("xiaomi".equalsIgnoreCase(type)) { return new XiaoMi(); } else if ("oppo".equalsIgnoreCase(type)) { return new Oppo(); } return null; } } public class Test2 { public static void main(String[] args) { Phone p = PhoneFactory.getPhone("Huawei"); if (p != null) { p.call(); } } }