使用范围最广
package com.bjsxt.create.factory.simplefactory;
public interface Car {
void run();
}
package com.bjsxt.create.factory.simplefactory;
public class Audi implements Car{
@Override
public void run() {
System.out.println("奥迪在跑!");
}
}
package com.bjsxt.create.factory.simplefactory;
public class Byd implements Car{
@Override
public void run() {
System.out.println("比亚迪在跑!");
}
}
package com.bjsxt.create.factory.simplefactory;
/**
* 简单工厂类
* @author WL20180732
*
*/
public class CarFactory {
public static Car createCar(String type) {
if ("奥迪".equals(type)) {
return new Audi();
} else if ("比亚迪".equals(type)) {
return new Byd();
} else {
return null;
}
}
}
package com.bjsxt.create.factory.simplefactory;
/**
* 简单工厂类
* @author WL20180732
*
*/
public class CarFactory02 {
public static Car createAudi() {
return new Audi();
}
public static Car createByd() {
return new Byd();
}
}
package com.bjsxt.create.factory.simplefactory;
/**
* 测试在没有工厂模式的情况下
* @author WL20180732
*
*/
public class Client01 { // 调用者
public static void main(String[] args) {
Car c1 = new Audi();
Car c2 = new Byd();
c1.run();
c2.run();
}
}
package com.bjsxt.create.factory.simplefactory;
/**
* 测试在简单工厂模式的情况下
* 常用简单工厂模式
* @author WL20180732
*
*/
public class Client02 { // 调用者
public static void main(String[] args) {
Car c1 = CarFactory.createCar("奥迪");
Car c2 = CarFactory.createCar("比亚迪");
c1.run();
c2.run();
}
}