设计模式-工厂方法模式

Posted on 2021-11-29 14:48  ***Pepsi***  阅读(28)  评论(0编辑  收藏  举报

工厂方法模式属于类创建型模式,工厂父类负责定义创建产品对象的公共接口,而子类工厂负责生成具体的产品对象,目的是将产品的实例化操作延迟到工厂子类中完成,通过工厂子类来确定究竟应该实例化哪一个具体产品类

 

 工厂方法模式包含如下角色:

  1.Product(抽象产品类):是定义产品的接口,是工厂方法模式所创建对象的超类型,即产品对象的共同父类或接口

  2.ConcreteProduct(具体产品类):实现了抽象产品接口,某种类型的具体产品由专门的具体工厂构建,它们之间存在一一对应关系

  3.Factory(抽象工厂类):抽象工厂中声明了工厂方法,用于返回一个产品,他是工厂方法的核心,任何在模式中创建对象的工厂类都必须实现该接口

  4.ConcreteFactory(具体工厂类):是抽象工厂类的子类,实现了抽象工厂中定义的方法,可由客户端调用返回一个具体产品类的实例

工厂方法模式的优点

  1.隐藏细节,关注工厂名

  2.使工厂可以自主确定创建何种产品对象,如何创建的具体细节完全封装在具体工厂内部

  3.完全符合开闭原则

工厂方法模式的缺点

  1.一个产品对应一个子工厂,加大了额外的开发量

  2.增加了系统的实现难度

Copyright © 2024 ***Pepsi***
Powered by .NET 8.0 on Kubernetes