工厂方法模式

来源:互联网 发布:软件客户端 编辑:程序博客网 时间:2024/06/05 00:10

所谓工厂方法模式(Factory Method Pattern),就是定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象,也就是将实际创建实例对象的工作推迟到子类当中,核心工厂类不再负责具体产品的创建。

java.util.ArrayList也是java.util.List类的一个子类,实现了其iterator()接口方法,返回具体的迭代器AbstractList$Itr(具体产品),Itr类也是作为AbstractList的内部私有类使用。


下面是一个例子:

Factory.java

public interface Factory {
public Salary createSalary();
}


HeBeiSalaryFactory.java

public class HeBeiSalaryFactory implements Factory{
public Salary createSalary(){
return new HeBeiSalary();
}
}


JiLinSalaryFactory.java

public class JiLinSalaryFactory implements Factory{
public Salary createSalary(){
return new JiLinSalary();
}
}


Salary.java

public interface Salary {
void computerSalary();
}


HeBeiSalary.java

public class HeBeiSalary implements Salary{
public void computerSalary(){
System.out.println("开始计算河北子公司的薪资");
}
}


JiLinSalary .java

public class JiLinSalary implements Salary{
public void computerSalary(){
System.out.println("开始计算吉林子公司的薪资");
}
}



Client.java

public class Client {
public static void main(String[] args) {
Factory factory = new HeBeiSalaryFactory();//接口、实现类
Salary salary = factory.createSalary();
salary.computerSalary();
factory = new JiLinSalaryFactory();
salary = factory.createSalary();
salary.computerSalary();
}
}


在工厂方法模式中,客户端不再负责对象的创建,而是把这个责任交给了具体的工厂类,客户端只 负责对对象的调用,从而明确了各个类的职责。