第二章 工厂模式
2.1 介绍设计模式
2.2 工厂模式
使用简单工厂完成国际化
对于工厂来说,隐藏了创建类的细节;客户端的使用者直接面向工厂,让工厂去选择创建适合的对象
public class Software {
public static void main(String[] args) {
//根据不同的地区显示不同的语言
I18N i18N = I18NFactory.getI18NObject("China");
System.out.println(i18N.getTitle());
}
}
在工厂中,由工厂去决定具体的实现类是哪个,并且创建它的对象
public class I18NFactory {
//静态工厂
public static I18N getI18NObject(String area) {
if(area.equals("China")) return new Chinese();
else if(area.equals("Spain")) return new Spanish();
else if(area.equals("Italy")) return new Italian();
else return null;
}
}
对于具体的实现类来说,他们都要实现相同的接口(I18N);其次无论是工厂还是工厂返回的实例,都是面向接口开发
public class Chinese implements I18N{
public String getTitle() {
return "人事管理系统";
}
}
public class Italian implements I18N{
public String getTitle() {
return "Sistema di gestione del personale";
}
}
public class Spanish implements I18N{
public String getTitle() {
return "Sistema de gestión del personal";
}
}