Java--设计模式之工厂模式

本文通过一个学雷锋的小例子介绍了工厂方法模式的概念及其实现方式。该模式定义了一个用于创建对象的接口,让子类决定实例化哪一个类,使得实例化的操作延迟到子类进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

简单工厂vs工厂模式:简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。

我们通过一个学雷锋的小例子来看一下如何实现工厂方法模式。

1、雷锋基类

public class LeiFeng {
	public void sweep(){
		System.out.println("扫地");
	}
	public void wash(){
		System.out.println("洗衣服");
	}
	public void buyRice(){
		System.out.println("买米");
	}
}
2、志愿者继承雷锋
public class Volunteer extends LeiFeng{

}
3、大学生继承雷锋
public class UnderGraduate extends LeiFeng{

}
4、雷锋工厂
public interface IFactory {
	LeiFeng createLeiFeng();
}
5、学雷锋的大学生工厂
public class UnderGraduateFactory implements IFactory{

	@Override
	public LeiFeng createLeiFeng() {
		return new UnderGraduate();
	}

}
6、学雷锋的志愿者工厂
public class VolunteerFactory implements IFactory{

	@Override
	public LeiFeng createLeiFeng() {
		return new Volunteer();
	}

}
7、测试
public class Test {
	public static void main(String[] args) {
		// 要换成社区志愿者只需要更改UnderGraduateFactory即可
		IFactory factory = new UnderGraduateFactory();
		LeiFeng student = factory.createLeiFeng();
		student.buyRice();
		student.sweep();
		student.wash();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值