/** * 简单工厂,简单在于只有一个工厂方法就可以生产对应的对象,通过工厂方法,存入对应的对象名字进行匹配,一般工厂方法都是静态的,所以也叫静态工厂方法 * 缺点是:每添加一个子类,就要改下工厂方法的代码,拓展性不强 * 本次使用富士康生产苹果手机和小米手机为例子,富士康就是一个工厂,要生产苹果手机,只要跟富士康说,我要生产苹果手机就行了,它就不会帮你生产华为还是其他手机, * 同理,你要生产小米手机,也是跟富士康老板说,我要生产小米手机就行了 * 简单工厂的模式:必须有个接口(如手机接口),还有该接口的几个实现类(小米手机,苹果手机),最后一个就是一个工厂类(富士康),工厂类有个静态方法 */ //创建手机接口 public interface Phone { void call(); } //苹果手机 public class Iphone implements Phone { @Override public void call() { System.out.println("使用苹果手机打电话"); } } //小米手机 public class MIPhone implements Phone { @Override public void call() { System.out.println("使用小米手机打电话"); } } /** * 工厂类,如富士康,用于生产对应的手机 */ public class FoxconnFactorty { public static Phone createPhone(String phoneName){ //工厂方法 if("xiaoMi".equals(phoneName)){ return new MIPhone(); } if("apple".equals(phoneName)){ return new Iphone(); } return null; } } class test { public static void main(String[] args) { //生产苹果手机 Phone apple = FoxconnFactorty.createPhone("apple"); apple.call(); //生产小米手机 Phone xiaoMi = FoxconnFactorty.createPhone("xiaoMi"); xiaoMi.call(); } }