工厂模式根据调用数据返回某一个类的实例。通常这些类满足特定的规则(实现特定的接口)或父类.调用者只是关心工厂生产的实例是否满足某种规范,即实现了特定的接口,是否满足自己的需要。
角色:
1. Creator 角色. 工厂类角色
2.Product 角色.抽象角色
3.Concrete Product角色.具体实现角色
Product 角色
public interface Person {
public String sayHello(String name);
public String sayGoodBye(String name);
}
Concrete Product角色
public class American implements Person {
public String sayHello(String name) {
return name + ",Hello!";
}
public String sayGoodBye(String name) {
return name + ",GoodBye";
}
}
public class Chinses implements Person {
public String sayHello(String name) {
return name + ",Hello!";
}
public String sayGoodBye(String name) {
return name + ",GoodBye";
}
}
public class PersonFactory {
public Person getPerson(String ethnic) {
if ("chinese".equalsIgnoreCase(ethnic)) {
return new Chinses();
} else {
return new American();
}
}
}
测试
public class TestMain {
public static void main(String[] args) {
PersonFactory personFactory = new PersonFactory();
Person p = personFactory.getPerson("chinese");
System.out.println(p.sayHello("中国"));
System.out.println(p.sayGoodBye("中国"));
p = personFactory.getPerson("american");
System.out.println(p.sayHello("American"));
System.out.println(p.sayGoodBye("American"));
}
}