视频中老师说:工厂类返回的不是具体的实现类,而是返回的接口。
package com.imooc.factory.i18n; public class I18NFactory { //静态工厂 public static I18N getI18NObject(String area){ if(area.equals("china")){ return new Chinese(); }else if(area.equals("spain")){ return new Spainish(); }else if(area.equals("Britain")||area.equals("US")){ return new English(); }else{ return null; } } }
在这个i18n案例中,返回的不是具体的new 对象(如new Chinese() )吗?,也是一个实现了I18N接口的对象实例,怎么理解老师所说的 工厂类返回的不是具体的实现类,而是返回的某一个接口 这句话呢?
6
收起
正在回答
1回答
同学你好,工厂模式隐藏了创建类的细节,客户端使用者直接面向工厂编程,让工厂自动创建选择所适合的对象。对于用户来说无需关注工厂类具体创建了哪个实现类,只需要知道工厂类返回了某一个接口就可以了。
工厂类返回的是接口i18n类型的实例,而不是某一个具体实现类类型Chinese、Spainish、English的实例,代码如下图所示。所以说“工厂类返回的不是具体的实现类,而是返回的接口”。
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9400 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星