java设计模式-工厂方法模式

工厂方法模式详解

  今天我们主要学习Java设计模式中的工厂方法模式,如果你看过我之前写的简单工厂模式会更容易理解下面的讲解,为了便于理解工厂方法模式我依然用食品加工厂为案例。

一,概述

  工厂方法模式去掉了简单工厂模式中工厂方法的静态属性使得它可以被子类继承。这样在简单工厂模式里集中在工厂方法上的压力可以由工厂方法模式里不同  的工厂子类来分担。

  工厂方法模式使用继承自抽象工厂角色的多个子类来代替简单工厂模式中的“***类”。这样便分担了对象创建的压力;避免工厂类中用逻辑判断来决定创建对象,  而且这样使得结构变得相当灵活当有新的产品产生时,只要按照抽象产品角色、抽象工厂角色提供的规则来生成,那么就可以被客户使用,而不必去修改任何已有的  代码,可以看出工厂方法模式符合开闭原则

二,结构图

AbstractProduct 类:抽象产品类,工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口

Berr 类和 Drinks 类:具体产品类,是简单工厂模式的创建目标

AbstractFactory 类:抽象工厂类,这是工厂方法模式的核心,是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现

BerrFactory 类和 DrinksFactory 类:具体工厂类,它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggjpw.html