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

2019-10-30  本文已影响0人  qyfl

主要角色

职责

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

类图

类关系示意图

代码

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();
    }
}

技巧

上一篇下一篇

猜你喜欢

热点阅读