标签:业务 lang asn 原来 empty href code else out
//接口
public interface Car {
void name();
}
//实现接口,创建WuLing
public class WuLing implements Car {
@Override
public void name() {
System.out.println("五菱宏光");
}
}
//实现接口,创建Tesla
public class Tesla implements Car {
@Override
public void name() {
System.out.println("特斯拉");
}
}
//工厂
public class CarFactory {
public static Car getCar(String car){
if (!car.isEmpty()){
if (car.equals("五菱")){
return new WuLing();
}else if(car.equals("特斯拉")){
return new Tesla();
}else {
return null;
}
}else {
return null;
}
}
}
//消费者
public class Consumer {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入车子名称");
if (scanner.hasNext()) {
String name = scanner.nextLine();
Car car = CarFactory.getCar(name);
car.name();
}
scanner.close();
}
}
提供一个创建一系列相关或者相互依赖对象的接口,无需指定他们具体的类。我自己的理解就是在一定意义提前创建了一个相关产品对象的产品集合。拙见而已,不对的地方望指正
违反开闭原则,每次消费不同的车子,就要改变原来的工厂。
抽象工厂在一个稳定的业务结构中很强大,反之也会违反开闭原则。
标签:业务 lang asn 原来 empty href code else out
原文地址:https://www.cnblogs.com/dakuzai/p/13393186.html