首页 > 其他 > 详细

设计模式-抽象工厂模式

时间:2021-04-12 22:41:54      阅读:34      评论:0      收藏:0      [点我收藏+]

抽象工厂模式

主要解决:主要解决接口选择的问题。

JAVA应用:

java.sql.Connection

org.apache.ibatis.session.SqlSessionFactory

 

public abstract class Article {
    public abstract void produce();
}

 

public class JavaArticle extends Article {
    @Override
    public void produce() {
        System.out.println("编写Java课程手记");
    }
}

 

public class PythonArticle extends Article {
    @Override
    public void produce() {
        System.out.println("编写Python课程手记");
    }
}

 

public abstract class Video {
    public abstract void produce();

}

 

public class JavaVideo extends Video {
    @Override
    public void produce() {
        System.out.println("录制Java课程视频");
    }
}

 

public class PythonVideo extends Video {
    @Override
    public void produce() {
        System.out.println("录制Python课程视频");
    }
}

 

public interface CourseFactory {
    Video getVideo();
    Article getArticle();

}

 

public class JavaCourseFactory implements CourseFactory {
    @Override
    public Video getVideo() {
        return new JavaVideo();
    }

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

 

public class PythonCourseFactory implements CourseFactory {
    @Override
    public Video getVideo() {
        return new PythonVideo();
    }

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

 

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

 

设计模式-抽象工厂模式

原文:https://www.cnblogs.com/woodpecker-z/p/14649889.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!