工厂模式
- 工厂模式用于隐藏创建对象的细节
- 工厂模式核心:工厂类(Factory)
- 工厂模式可细分为简单工厂、工厂方法与抽象工厂
简单工厂
- 客户类直接面向工厂类调用方法
- 工厂类面向接口方法
- 实现类实现对应的接口方法以实现不同的具体方法
类目录:
具体实例代码:
实现类1:
package com.imooc.factory.i18n;
public class Chinese implements I18N{
public String getTitle(){
return "人事管理系统!";
}
}
实现类2:
package com.imooc.factory.i18n;
public class Italian implements I18N{
public String getTitle(){
return "假装是意大利语!";
}
}
实现类3:
package com.imooc.factory.i18n;
public class Spainish implements I18N{
public String getTitle(){
return "假装是西班牙语!";
}
}
抽象接口:
package com.imooc.factory.i18n;
//工厂接口
public interface I18N {
public String getTitle();
}
工厂类:
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("italy")){
return new Italian();
}else{
return null;
}
}
}
客户类:
package com.imooc.factory;
import com.imooc.factory.i18n.I18N;
import com.imooc.factory.i18n.I18nFactory;
public class Software {
public static void main(String[] args) {
I18N i18n= I18nFactory.getI18NObject("italy");
System.out.println(i18n.getTitle());
}
}