1.1工厂模式-工厂方法

xiaoxiao2021-02-28  60

简介

工厂方法:抽象产品,具体产品,抽象工厂,具体工厂。

在简单工厂的基础上,多出一个抽象工厂,每个具体工厂只能生产一种产品

类图

代码

/** * 简单工厂-抽象产品 * @author: 张彬 * @date: 2018年3月22日 下午2:44:27 * @version: V1.0 * @review: 张彬/2018年3月22日 下午2:44:27 */ public interface Shape { public void draw(); } /** * 工厂方法-具体产品 * @author: 张彬 * @date: 2018年3月22日 下午3:07:48 * @version: V1.0 * @review: 张彬/2018年3月22日 下午3:07:48 */ public class Circle implements Shape { @Override public void draw() { System.out.println("in Circle::draw() method."); } } /** * 工厂方法-具体产品 * @author: 张彬 * @date: 2018年3月22日 下午2:46:10 * @version: V1.0 * @review: 张彬/2018年3月22日 下午2:46:10 */ public class Rectangle implements Shape { @Override public void draw() { System.out.println("in Rectangle::draw() method."); } } /** * 工厂方法-具体产品 * @author: 张彬 * @date: 2018年3月22日 下午2:47:46 * @version: V1.0 * @review: 张彬/2018年3月22日 下午2:47:46 */ public class Square implements Shape { @Override public void draw() { System.out.println("in Square::draw() method."); } } /** * 工厂方法-抽象工厂 * @author: 张彬 * @date: 2018年3月22日 下午4:15:20 * @version: V1.0 * @review: 张彬/2018年3月22日 下午4:15:20 */ public interface ShapeFactory { public Shape getShape(); } /** * 工厂方法-具体工厂 (只敲这一个) * @author: 张彬 * @date: 2018年3月22日 下午3:22:20 * @version: V1.0 * @review: 张彬/2018年3月22日 下午3:22:20 */ public class CircleFactory implements ShapeFactory { @Override public Shape getShape() { return new Circle(); } } /** * 测试 * @author: 张彬 * @date: 2018年3月22日 下午3:04:34 * @version: V1.0 * @review: 张彬/2018年3月22日 下午3:04:34 */ public class FactoryMethodDemo { public static void main(String[] args) { ShapeFactory shapeFactory = new CircleFactory(); Shape circle = shapeFactory.getShape(); circle.draw(); } }

输出结果:

in Circle::draw() method.
转载请注明原文地址: https://www.6miu.com/read-2626856.html

最新回复(0)