/**
* 普通工厂方法:每个对象都会有一个工厂类进行生产,例如小米手机由纬创公司代工生产,苹果手机由富士康代工生产,也就是每个工厂只会生产一种对象
* 模式特点:1.拥有一个对象接口(手机接口)和该对象接口的几个实现类(小米手机,苹果手机)
* 2.拥有一个工厂接口(手机工厂)和该接口的几个实现类(纬创工厂,富士康工厂)
*/
//创建手机接口
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 interface PhoneFactory {
Phone createPhone();
}
//生产小米手机的工厂如纬创
public class MiPhoneFactory implements PhoneFactory {
@Override
public Phone createPhone() {
return new MIPhone();
}
}
//生产苹果手机的工厂,如富士康
public class IPhoneFactory implements PhoneFactory {
@Override
public Phone createPhone() {
return new Iphone();
}
}
class test{
public static void main(String[] args) {
PhoneFactory iPhoneFactory = new IPhoneFactory();
Phone iphone = iPhoneFactory.createPhone();
iphone.call();
PhoneFactory miPhoneFactory = new MiPhoneFactory();
Phone miPhone = miPhoneFactory.createPhone();
miPhone.call();
}
}