更新时间:2019年07月26日 11时12分02秒 来源:黑马程序员论坛
A. 为什么要从设计模式开始及工厂模式详解软件设计7大原则
public void record(); } public class JavaCourse implements ICourse { @Override public void record() { System.out.println("录制 Java 架构师视频课程"); } } public class PythonCourse implements ICourse { @Override public void record() { System.out.println("录制 Python 人工智障视频课程"); } }public class CourseFactory { public ICourse create_v1(String courseName) { courseName = courseName.toLowerCase(); switch (courseName) { case "java": return new JavaCourse(); default: return null; } } public ICourse create_v2(String className) { if (className == null || className.trim().equals("")) return null; try { return (ICourse) Class.forName(className).newInstance(); } catch (Exception e) { System.err.println("fail to create object!!"); } return null; } public ICourse create_v3(Class<? extends ICourse> clazz) { if (clazz == null) throw new NullPointerException(); try { return clazz.newInstance(); } catch (Exception e) { System.err.println("fail to create object!!"); } return null; } }public class SimpleFactoryTest { public static void main(String[] args) { System.out.println("普通创建对象方式"); ICourse course = new JavaCourse(); course.record(); System.out.println("通过简单工厂获取对象"); CourseFactory factory = new CourseFactory(); ICourse javaCourse_1 = factory.create_v1("Java"); javaCourse_1.record(); System.out.println("改进版后的方法"); ICourse javaCourse_2 = factory.create_v2(JavaCourse.class.getName()); javaCourse_2.record(); System.out.println("改进版本 V3"); ICourse javaCourse_3 = factory.create_v3(JavaCourse.class); javaCourse_3.record(); } }
public void record(); } public class JavaCourse implements ICourse { @Override public void record() { System.out.println("录制 Java 架构师视频课程"); } } public class PythonCourse implements ICourse { @Override public void record() { System.out.println("录制 Python 人工智障视频课程"); } }public interface ICourseFactory { public ICourse create(); } public class JavaCourseFactory implements ICourseFactory { @Override public ICourse create() { return new JavaCourse(); } } public class PythonCourseFactory implements ICourseFactory { @Override public ICourse create() { return new PythonCourse(); } }public class FactoryMethodTest { public static void main(String[] args) { ICourseFactory courseFactory = new PythonCourseFactory(); ICourse pythonCourse = courseFactory.create(); pythonCourse.record(); } }
public interface INote {} public interface IVideo {}public class JavaCourse implements ICourse {} public class JavaNote implements INote {} public class JavaVideo implements IVideo {}public class PythonCourse implements ICourse {}public class PythonNote implements INote{}public class PythonVideo implements IVideo {}public interface ICourseFactory { public ICourse createCourse(); public IVideo createVideo(); public INote createNote();}public class JavaCourseFactory implements ICourseFactory { @Override public ICourse createCourse() { return new JavaCourse(); } @Override public IVideo createVideo() { return new JavaVideo(); } @Override public INote createNote() { return new JavaNote(); }}public class PythonCourseFactory implements ICourseFactory { @Override public ICourse createCourse() { return new PythonCourse(); } @Override public IVideo createVideo() { return new PythonVideo(); } @Override public INote createNote() { return new PythonNote(); }}public class AbstractFactoryTest { public static void main(String[] args) { ICourseFactory javaFactory = new JavaCourseFactory(); javaFactory.createCourse(); javaFactory.createNote(); javaFactory.createVideo(); ICourseFactory pythonFactory = new PythonCourseFactory(); pythonFactory.createCourse(); pythonFactory.createNote(); pythonFactory.createNote(); }}
|
推荐了解热门学科
java培训 | Python人工智能 | Web前端培训 | PHP培训 |
区块链培训 | 影视制作培训 | C++培训 | 产品经理培训 |
UI设计培训 | 新媒体培训 | 产品经理培训 | Linux运维 |
大数据培训 | 智能机器人软件开发 |
传智播客是一家致力于培养高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。
传智播客从未停止思考
传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”
中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。
何为中高级程序员课程?
传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展。“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。
黑马程序员热门视频教程【点击播放】
Python入门教程完整版(懂中文就能学会) | 零起点打开Java世界的大门 |
C++| 匠心之作 从0到1入门学编程 | PHP|零基础入门开发者编程核心技术 |
Web前端入门教程_Web前端html+css+JavaScript | 软件测试入门到精通 |