//抽象工厂设计模式是用来实现工厂族的
public interface Fruit {
publicvoid show();
}
public abstract class Apple implementsFruit{
@Override
publicabstract void show();
}
public abstract class Pear implementsFruit{
@Override
publicabstract void show();
}
public class NorthApple extends Apple{
@Override
publicvoid show() {
//TODO 自动生成的方法存根
System.out.println("北方苹果!");
}
}
public class NorthPear extends Pear{
@Override
publicvoid show() {
//TODO 自动生成的方法存根
System.out.println("北方梨");
}
}
public class SouthApple extends Apple{
@Override
publicvoid show() {
//TODO 自动生成的方法存根
System.out.println("南方苹果");
}
}
public class SouthPear extends Pear{
@Override
publicvoid show() {
//TODO 自动生成的方法存根
System.out.println("北方梨");
}
}
public interface FruitFactory {
publicApple getApple();
publicPear getPear();
}
public class NorthFactory implementsFruitFactory{
@Override
publicApple getApple() {
//TODO 自动生成的方法存根
returnnew NorthApple();
}
@Override
publicPear getPear() {
//TODO 自动生成的方法存根
returnnew NorthPear();
}
}
public class SouthFactory implementsFruitFactory{
@Override
publicApple getApple() {
//TODO 自动生成的方法存根
returnnew SouthApple();
}
@Override
publicPear getPear() {
//TODO 自动生成的方法存根
returnnew SouthPear();
}
}
public class TestMain {
publicstatic void main(String[] args) {
FruitFactoryff=new NorthFactory();//产生一个北方的工厂
Appleapple=ff.getApple();//北方的工厂产生北方的苹果
apple.show();//北方的苹果有自己的方法
Pearpear=ff.getPear();//北方的工厂产生北方的梨
pear.show();//北方的梨有自己的方法
//具体解释同上
FruitFactoryfffFactory=new SouthFactory();
Appleapple2=fffFactory.getApple();
apple2.show();
Pearpear2=fffFactory.getPear();
pear2.show();
}
}