美文网首页
设计模式-抽象工厂(AbstractFactory)模式

设计模式-抽象工厂(AbstractFactory)模式

作者: qyfl | 来源:发表于2019-10-30 16:52 被阅读0次

主要角色

  • 抽象产品工厂
  • 抽象产品零件

职责

产品工厂可以创建一系列同一产品族的产品。隐藏同一产品组产品创建细节。

类图

类关系示意图

代码

public abstract class Article {
    public abstract void produce();
}
---
public abstract class Video {
    public abstract void produce();
}
---
public interface CourseFactory {
    Video getVideo();
    Article getArticle();
}
---
public class JavaArticle extends Article {
    @Override
    public void produce() {
        System.out.println("编写Java课程手记");
    }
}
---
public class JavaVideo extends Video {
    @Override
    public void produce() {
        System.out.println("录制Java课程视频");
    }
}
---
public class JavaCourseFactory implements CourseFactory {
    @Override
    public Video getVideo() {
        return new JavaVideo();
    }

    @Override
    public Article getArticle() {
        return new JavaArticle();
    }
}

使用

public class Test {
    public static void main(String[] args) {
        CourseFactory courseFactory = new JavaCourseFactory();
        Video video = courseFactory.getVideo();
        Article article = courseFactory.getArticle();
        video.produce();
        article.produce();
    }
}

技巧

  • 类似于 Video 和 JavaCourseFactory 这样的产品零件和产品,可以有很多个。
  • 向使用代码一样,调用的是具体产品工厂的方法创建具体产品。
  • 和工厂方法的却别在我看来就是有没有产品零件,有产品零件有有了产品族的概念。

相关文章

网友评论

      本文标题:设计模式-抽象工厂(AbstractFactory)模式

      本文链接:https://www.haomeiwen.com/subject/xktavctx.html