工厂模式:
工厂模式是根据调用数据返回某个类的一个实例,此类可以是多个类的某一个类。通常这些类满足共同的规则(接口)或父类。调用
着只关心工厂生产的实例是否满足某种规范,即实现的某个接口是否可供自己正常调用(调用者仅仅使用)。接口生产的全部实例通
常用于实现相同接口,接口里定义了全部实例共同拥有的方法,这些方法在不同的实现类中实现的方式不同。程序调用者无需关心方
法的具体实现。
工厂模式的示例代码如下:
//定义一个Person接口
public interface Person
{
public String sayHello(String name);
public String sayGoodBye(String name);
}
//Person接口要求实现该接口的类必须具有这两个方法。
public class American implements Person
{
public String sayHello(String name)
{
return name + ", Hello";
}
public String sayGoodBye(String name)
{
return name + ", Goodbye...";
}
}
public class Chinese implements Person
{
public String sayHello(String name)
{
return name + ", 您好";
}
public String sayHello(String name)
{
return name + ", 再见!";
}
}
//Person工厂的代码
public class PersonFactory
{
public Person getPerson(String ethnic)
{
if(ethnic.equalsIgnoreCase("chin"))
{
return new Chinese();
}
else
{
return new American();
}
}
}
public class FactoryTest
{
public static void main(String[] args)
{
PersonFactory pf = new PersonFactory();
//定义接口的实例
Person person = null;
//获得Person的实例
person = pf.getPerson("chin");
//调用Person接口的方法
System.out.println(person.sayHello("Mark"));
System.out.println(person.sayGoodBye("Mark"));
//使用Person的另一个实例
person = pf.getPeson("ame");
System.out.println(person.sayHello("Mark"));
System.out.println(person.sayGoodBye("Mark"));
}
}
UML图示如下: