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

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

简单工厂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();
	}
}

你可能感兴趣的:(java,设计模式,工厂模式)