概述
仔细阅读完,可以发现工厂方法和抽象工厂之间的不同

类图

示例


代码
/**
* @ClassName: AbstractFactory
* @Author: 楠
* @Description: 抽象工厂设计模式
*/
public class AbstractFactory {//相当于client
public static void main(String[] args) {
AbstractCreator creator=new CreatorOne();
creator.creatPartA();
creator.creatPartB();
}
}
//零件A
interface AbstractPartA{
void showName();
}
//零件B
interface AbstractPartB{
void showName();
}
//one类型零件A
class PartAOne implements AbstractPartA{
@Override
public void showName() {
}
}
//One类型零件B
class PartBOne implements AbstractPartB{
@Override
public void showName() {
}
}
//Two类型零件A
class PartATwo implements AbstractPartA{
@Override
public void showName() {
}
}
//Two类型零件B
class PartBTwo implements AbstractPartB{
@Override
public void showName() {
}
}
//抽象工厂
interface AbstractCreator{
AbstractPartA creatPartA();
AbstractPartB creatPartB();
}
//生成One类型工厂
class CreatorOne implements AbstractCreator{
@Override
public AbstractPartA creatPartA() {
return new PartAOne();
}
@Override
public AbstractPartB creatPartB() {
return new PartBOne();
}
}
//生成Two类型工厂
class CreatorTwo implements AbstractCreator{
@Override
public AbstractPartA creatPartA() {
return new PartATwo();
}
@Override
public AbstractPartB creatPartB() {
return new PartBTwo();
}
}
本文通过具体实例详细介绍了抽象工厂设计模式的应用方式。首先定义了一组接口代表不同的产品族,然后创建了具体的实现类,并通过抽象工厂接口来统一提供这些产品的创建逻辑。最后,通过客户端代码演示了如何使用抽象工厂来创建不同产品族的对象。


被折叠的 条评论
为什么被折叠?



