工厂方法模式

所谓工厂方法模式(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();
}
}


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值