java (接口)interface 工厂方法(FactoryMethod)

版权声明:尊重原创,码字不易,转载需博主同意。 https://blog.csdn.net/qq_34626097/article/details/83476926

java (接口)interface 工厂方法(FactoryMethod)

1. 概述:

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

2. 适用性:

  1. 当一个类不知道它所必须创建的对象的类的时候
  2. 当一个类希望由它的子类来指定它所创建的对象的时候
  3. 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候

3.dome

  1. 写代码的时候,表面看的时候,都是接口与接口之间的交互,但执行的时候,是接口的实现类的代码去执行。这个接口多态性的的应用。
  2. 核心思想:由接口先定义功能,真正需要用的时候,由子类来决定以及创建谁的对象。
  3. XXXWorkFactory的实例去决定创建XXXWork 的具体实例是谁。
//工厂方法的设计模式
public class TestFactoryMethod {
	public static void main(String[] args) {
		IWorkFactory i = new StudentWorkFactory();
		i.getWork().doWork();//学生写作业
		//i,先获得实现Work接口相应的实例,再由实例去执行接口重写的方法
		IWorkFactory i1 = new TeacherWorkFactory();
		i1.getWork().doWork();//老师教功课
	}
}
interface IWorkFactory{
	Work getWork();
}
interface Work{
	void doWork();
}
class StudentWorkFactory implements IWorkFactory{

	@Override
	public Work getWork() {
		return new StudentWork();
	}
	
}
class TeacherWorkFactory implements IWorkFactory{

	@Override
	public Work getWork() {
		return new TeacherWork();
	}
	
}
class StudentWork implements Work{

	@Override
	public void doWork() {
		System.out.println("学生写作业");
	}
	
}
class TeacherWork implements Work{

	@Override
	public void doWork() {
		System.out.println("老师教功课");
	}
	
}

4.设计图

设计图

猜你喜欢

转载自blog.csdn.net/qq_34626097/article/details/83476926
今日推荐