一 代码
// 抽象产品
interface Block {
public void print();
}
// 具体产品
class IBlock implements Block {
@Override
public void print() {
System.out.println("我是一个I形的方块!");
}
}
// 具体产品
class LBlock implements Block {
@Override
public void print() {
System.out.println("我是一个L形的方块!");
}
}
// 抽象工厂
interface Factory {
public Block getInstance();
}
// 具体工厂
class IBlockFactory implements Factory {
@Override
public Block getInstance() {
return new IBlock();
}
}
// 具体工厂
class LBlockFactory implements Factory {
@Override
public Block getInstance() {
return new LBlock();
}
}
// 客户端
public class TestAdvancedFactory {
public static void main( String[] args ) {
// 创建一个生产 I 形方块的工厂
Factory iBlockFactory = new IBlockFactory();
// 用工厂生产一个 I 形方块
Block iBlock = iBlockFactory.getInstance();
iBlock.print();
// 创建一个生产 L 形方块的工厂
Factory LBlockFactory = new LBlockFactory();
// 用工厂生产一个 L 形方块
Block lBlock = LBlockFactory.getInstance();
lBlock.print();
}
}
二 运行
我是一个I形的方块!
我是一个L形的方块!
三 类图