工厂模式
工厂方法模式(Fatory Method Pattern)
提供一个接口,一个可创建一系列相关对象的。无需指定他们的具体类。
一个抽象工厂类,不同的具体工厂产生不同的对象实体。
eg: 冰箱(抽象工厂类) 美的冰箱(实体工厂类) 海尔冰箱(实体工厂类)
eg:
项目结构示意
抽象产品接口:
public interface INote {
void doNote();
}
public interface IVideo {
void doVideo();
}
抽象工厂接口–(生产产品)
public interface ICourseFactory {
INote createNote();
IVideo createVideo();
}
java产品组的产品实现
public class JavaNote implements INote {
@Override
public void doNote() {
System.out.println("==========java课程做笔记");
}
}
public class JavaVideo implements IVideo {
@Override
public void doVideo() {
System.out.println("================java课程下视频观看");
}
}
python产品组的产品实现
public class PythonNote implements INote {
@Override
public void doNote() {
System.out.println("======python课程下---做笔记");
}
}
public class PythonVideo implements IVideo {
@Override
public void doVideo() {
System.out.println("==========python课程下--看视频");
}
}
产品组实现产品创建
public class JavaCourseFactory implements ICourseFactory {
@Override
public INote createNote() {
return new JavaNote();
}
@Override
public IVideo createVideo() {
return new JavaVideo();
}
}
public class PythonCourseFactory implements ICourseFactory {
@Override
public INote createNote() {
return new PythonNote();
}
@Override
public IVideo createVideo() {
return new PythonVideo();
}
}
测试输出
public class TestDemo {
public static void main(String[] args) {
ICourseFactory iCourseFactory = new JavaCourseFactory();
iCourseFactory.createNote().doNote();
iCourseFactory.createVideo().doVideo();
}
}
测试结果
==========java课程做笔记
================java课程下视频观看
完整输出java产品组下的产品。
类关系图示
–END
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)