3.工厂方法模式

本文通过一个具体的例子介绍了工厂方法模式的实现方式及其与简单工厂模式的区别。通过定义一个创建产品对象但不直接指定其类的接口,将产品的实例化推迟到子类中进行。

package 工厂方法模式;

//工厂方法模式
class LeiFeng{//雷锋

public void Sweep(){
System.out.println("雷锋扫地");
}

}

class Graduate extends LeiFeng{//学雷锋的大学生
public void Sweep(){
System.out.println("大学生扫地");
}
}

class Volunteer extends LeiFeng{//社区志愿者
public void Sweep(){
System.out.println("社区志愿者扫地");
}

}

//工厂方法模式本质也是用来选择实现的,和简单工厂区别在于,工厂方法把选择具体实现的功能延迟到子类中去实现

//雷锋工厂
interface Factory{//雷锋工厂接口
public LeiFeng FactoryMethod();
}

//学雷锋的大学生工厂
class GraduateFactory implements Factory{
public LeiFeng FactoryMethod(){
return new Graduate();
}
}

//社区志愿者工厂
class VolunteerFactory implements Factory{
public LeiFeng FactoryMethod(){
return new Volunteer();
}
}

public class TestClass {
public static void main(String[] args) {
Factory f=new GraduateFactory();//要换成社区志愿者,修改这里就可以
LeiFeng s=f.FactoryMethod();//调用工厂方法

s.Sweep();

 

 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值