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