简单工厂模式

/**
 * 简单工厂,简单在于只有一个工厂方法就可以生产对应的对象,通过工厂方法,存入对应的对象名字进行匹配,一般工厂方法都是静态的,所以也叫静态工厂方法
 * 缺点是:每添加一个子类,就要改下工厂方法的代码,拓展性不强
 * 本次使用富士康生产苹果手机和小米手机为例子,富士康就是一个工厂,要生产苹果手机,只要跟富士康说,我要生产苹果手机就行了,它就不会帮你生产华为还是其他手机,
 * 同理,你要生产小米手机,也是跟富士康老板说,我要生产小米手机就行了
 * 简单工厂的模式:必须有个接口(如手机接口),还有该接口的几个实现类(小米手机,苹果手机),最后一个就是一个工厂类(富士康),工厂类有个静态方法
 */

//创建手机接口
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();
     }
 }     

  

原文地址:https://www.cnblogs.com/yangxiaohui227/p/10905009.html