package Factory;
public class SimpleFactory {
public static void main(String[] args) {
Car a=CarFactory.car("奥迪");
a.run();
}
}
interface Car{
void run();
}
class Audi implements Car{
@Override
public void run() {
System.out.println("奥迪在跑");
}
}
class BYD implements Car{
@Override
public void run() {
System.out.println("比亚迪在跑");
}
}
class CarFactory{
public static Car car(String type) {
if ("奥迪".equals(type)) {
return new Audi();
}
if ("比亚迪".equals(type)) {
return new BYD();
}
else {
return null;
}
}
}
package Factory;
public class FactoryMethod {
public static void main(String[] args) {
Car1 aCar=new AudiFactory().getCar();
Car1 bCar=new BYDFactory().getCar();
aCar.run();
bCar.run();
}
}
interface Car1{
void run();
}
class Audi1 implements Car1{
@Override
public void run() {
System.out.println("奥迪再跑");
}
}
class BYD1 implements Car1{
@Override
public void run() {
System.out.println("比亚迪在跑");
}
}
interface CarFactory1{
Car1 getCar();
}
class AudiFactory implements CarFactory1{
public Car1 getCar() {
return new Audi1();
}
}
class BYDFactory implements CarFactory1{
public Car1 getCar() {
return new BYD1();
}
}