原理:类属于扩展工厂模式
demo:
/**
* 抽象工厂模式
* @author zs
*
*/
public class AbstractFactoryPattern {
//测试
public static void main(String[] args) {
AbstractFactory af=new BikeFactory(); //初始化Bike工厂---(扩展Spring使用注入)
Car bikeCar=af.getCar(); //得到Bike
bikeCar.getCar();
Money bikeMoney=af.getMoney(); //得到Money
bikeMoney.getMoney();
}
}
abstract class AbstractFactory{ //抽象工厂类,提供两个方法
public abstract Car getCar(); //什么车
public abstract Money getMoney(); //多少钱
}
class TexiFactory extends AbstractFactory{ //Texi工厂类
public Car getCar() {
return new Texi();
}
public Money getMoney() {
return new TexiMoney();
}
}
class BikeFactory extends AbstractFactory{ //Bike工厂类
public Car getCar() {
return new Bike();
}
public Money getMoney() {
return new BikeMoney();
}
}
interface Car{ //Car接口
public void getCar();
}
class Texi implements Car{ //Texi
public void getCar() {
System.out.println("Texi。。。");
}
}
class Bike implements Car{ //Bike
public void getCar(){
System.out.println("Bike。。。");
}
}
interface Money{ //Money接口
public void getMoney();
}
class TexiMoney implements Money{ //Texi--money
public void getMoney() {
System.out.println("Texi多少钱。。。");
}
}
class BikeMoney implements Money{ //Bike--money
public void getMoney() {
System.out.println("Bike多少钱。。。");
}
}