工厂设计模式
2022/3/20 6:31:52
本文主要是介绍工厂设计模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简单工厂模式和抽象工厂模式
package DesignPattern; /** * 工厂模式 */ public class Test02 { /** * 简单的工厂模式 */ // public static void main(String[] args) { // // EasyClassFactory getClass = new EasyClassFactory(); // Course english = getClass.startClass("English"); // english.beginClass(); // } /** * 工厂方法模式, * @param args */ public static void main(String[] args) { EnglishFactory factory = new EnglishFactory(); Course course = factory.creatCourse(); course.beginClass(); } } interface Course{ void beginClass(); } class EnglishCourse implements Course{ @Override public void beginClass() { System.out.println("上英语课"); } } class MathCourse implements Course{ @Override public void beginClass() { System.out.println("上数学课"); } } class EasyClassFactory{ /** * * 简单工厂模式 * 假如我们有一个方法需要获取课程对象,那么我们下次增加了一门课就要修改这个类的代码, * 不满足OCP开闭原则,所以我们应该用工厂方法模式 * @param clas * @return */ public Course startClass(String clas){ if ("English".equals(clas)){ return new EnglishCourse(); }else if ("Math".equals(clas)){ return new MathCourse(); }else { return null; } } } /** * 工厂方法模式,每一门课程由每一门课程的工厂独自完成而不是 * 都交给一个工厂来处理 * * 但是这种方式会导致一个类过多,系统的复杂性提高 */ interface ClassFactory{ public Course creatCourse(); } class EnglishFactory implements ClassFactory{ @Override public Course creatCourse() { return new EnglishCourse(); } } class MathFactory implements ClassFactory{ @Override public Course creatCourse() { return new MathCourse(); } }
这篇关于工厂设计模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)