美文网首页
设计模式-抽象工厂(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