zoukankan      html  css  js  c++  java
  • 设计模式-抽象工厂模式

    抽象工厂模式

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

    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();
        }
    }
  • 相关阅读:
    拳击游戏(虚函数应用)
    虚函数的使用
    继承中的二义性归属问题
    继承的作用以及在子类中初始化所有数据的方法
    Exploring ES2016 Decorators
    Storage information for PWA application
    浏览器中常见网络协议介绍
    vuex所有核心概念完整解析State Getters Mutations Actions
    搭建一个webpack微服务器
    nodeJS接入微信公众平台开发
  • 原文地址:https://www.cnblogs.com/woodpecker-z/p/14649889.html
Copyright © 2011-2022 走看看