07.工厂模式-抽象工厂,
07.工厂模式-抽象工厂,
public interface Car {
String excute();
}
public class BenchiCar implements Car {
public String excute() {
System.out.println("奔驰车生产....");
return "OK";
}
}
public class BwmCar implements Car {
public String excute() {
System.out.println("宝马车生产....");
return "OK";
}
}
public class BydCar implements Car {
public String excute() {
System.out.println("比亚迪车生产....");
return "OK";
}
}
public interface Phone {
void call();
}
public class HuaweiPhone implements Phone{
public void call() {
System.out.println("华为手机....");
}
}
public class XiaomiPhone implements Phone{
public void call() {
System.out.println("小米手机....");
}
}
public interface Factory {
Phone getPhone(String type);
Car getCar(String carType);
}
public class CarFactory implements Factory{
public Phone getPhone(String type) {
return null;
}
public Car getCar(String carType) {
Car car = null;
if ("benchi".equals(carType)) {
car = new BenchiCar();
} else if ("bmw".equals(carType)) {
car = new BwmCar();
} else if ("byd".equals(carType)) {
car = new BydCar();
}
return car;
}
}
public class PhoneFactory implements Factory{
public Phone getPhone(String type) {
Phone phone = null;
if ("Huawei".equals(type)) {
phone = new HuaweiPhone();
} else if ("Xiaomi".equals(type)) {
phone = new XiaomiPhone();
}
return phone;
}
public Car getCar(String carType) {
return null;
}
}
public class AbstractFactory {
public static Factory getFactory(String type){
if("car".equals(type)){
return new CarFactory();
}else if ("phone".equals(type)){
return new PhoneFactory();
}
return null;
}
}
public class AbstractFactoryDemo {
public static void main(String[] args) {
Car bwm = AbstractFactory.getFactory("car").getCar("bmw");
bwm.excute();
}
}
用户点评