Define an interface for creating an object,but let subclasses decide to instantiate. Factory Method lets a class defer instantiation to subclasses. 定义一个用于创建对象的接口,让子类去决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类;
public class IPhone implements Phone {
@Override
public void showMsg() {
System.out.println("我是苹果手机~");
}
}
定义一个小米手机类,实现手机接口
public class MPhone implements Phone {
@Override
public void showMsg() {
System.out.println("我是小米手机~");
}
}
定义一个手机工厂类,根据传入的参数,决定实例化哪一类手机
public class PhoneFactory {
public static Phone getPhone(String phoneType) {
switch (phoneType) {
case "iPhone":
return new IPhone();
case "mPhone":
return new MPhone();
default:
return null;
}
}
}
定义一个使用场景,用来使用手机工厂类实例化具体手机类
public class FactoryClient {
public static void main(String[] args) {
//我想要一台小米手机
Phone phone = PhoneFactory.getPhone("mPhone");
phone.showMsg();
}
}