1、背景知识
【1】定义:
【2】适用场景
【3】优点
【4】缺点
【5】产品等级结构与产品族
2、coding
【1】coursefactory接口
一门课程包含视频+手记
public interface CourseFactory {
Video getVideo();
Article getArticle();
}
【2】创建video和article 抽象类
video
public abstract class Video {
public abstract void produce();
}
article
public abstract class Article {
public abstract void produce();
}
【3】java系列课程
java课程
public class JavaVideo extends Video {
@Override
public void produce() {
System.out.println("录制Java课程视频");
}
}
java笔记
public class JavaArticle extends Article {
@Override
public void produce() {
System.out.println("编写Java课程手记");
}
}
java课程工厂
public class JavaCourseFactory implements CourseFactory {
@Override
public Video getVideo() {
return new JavaVideo();
}
@Override
public Article getArticle() {
return new JavaArticle();
}
}
【4】python同理
python的视频类
public class PythonVideo extends Video {
@Override
public void produce() {
System.out.println("录制Python课程视频");
}
}
笔记类
public class PythonArticle extends Article {
@Override
public void produce() {
System.out.println("编写Python课程手记");
}
}
课程工厂类
public class PythonCourseFactory implements CourseFactory {
@Override
public Video getVideo() {
return new PythonVideo();
}
@Override
public Article getArticle() {
return new PythonArticle();
}
}
【5】创建测试类
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();
}
}
UML图