工厂模式(Factory)
所谓简单工厂模式是类的创建模式,是由一个工厂对象决定创建出哪 一种产品类的实例。
角色:
工厂类角色: 在客户端的直接调用创建产品,一个具体类,可以根据传入的参数不同返同不同的实例。
抽象产品角色: 一个接口,定义了具体产品所受的规范,即相同的形为。
具体产品角色:工厂类角色所需创建的类,一个具体类或多个。
1.简单工厂模式
类图:
一个简单例子,代码如下:
package com.design;
public class PersonFactory
{
public Person getPerson(String str)
{
if(str.equals("chinese"))
{
return new Chinese();
}
if(str.equals("america"))
{
return new America();
}
return null;
}
}
interface Person
{
public String sayHello();
public String sayGoodbye();
}
class America implements Person
{
@Override
public String sayHello()
{
return "hello";
}
@Override
public String sayGoodbye()
{
return "goodbye";
}
}
class Chinese implements Person
{
@Override
public String sayHello()
{
return "你好";
}
@Override
public String sayGoodbye()
{
return "再见";
}
}
测试类Test
package com.design;
public class Test
{
public static void main(String[] args)
{
PersonFactory factory = new PersonFactory();
Person chinese=factory.getPerson("chinese");
System.out.println(chinese.sayHello());
System.out.println(chinese.sayGoodbye());
Person america = factory.getPerson("america");
System.out.println(america.sayHello());
System.out.println(america.sayGoodbye());
}
}
2.抽象工厂模式