工厂模式
0x00 工厂模式
工厂模式提供了一个创建对象的接口,但允许子类决定实例化哪一个类。工厂方法让类的实例化推迟到子类中进行。
工厂方法模式的基本结构包括以下几个部分:
- 抽象产品(Product): 定义了产品的接口,它是所有具体产品的公共父类或接口。
- 具体产品(Concrete Product): 实现了抽象产品接口的具体类。
- 抽象工厂(Creator): 定义了工厂接口,声明了一个或多个工厂方法,用于创建具体产品。
- 具体工厂(Concrete Creator): 实现了抽象工厂接口,包含了具体的产品实现逻辑。
0x01 示例
假设我们有一个图形绘制应用,我们需要创建不同类型的图形,如圆形(Circle)、矩形(Rectangle)等。
类图:
classDiagram class ClientApp{ + main(String[] args) } class Shape { +draw() } class Circle { +draw() } class Rectangle { +draw() } class ShapeFactory { +getShape(): Shape } class RoundedRectangleFactory { +getShape(): Shape } ClientApp..|>Shape ClientApp..|>ShapeFactory Shape <|-- Circle Shape <|-- Rectangle ShapeFactory <|-- RoundedRectangleFactory Circle<|..RoundedRectangleFactory Rectangle<|..RoundedRectangleFactory Shape<|..ShapeFactory
代码:
1 |
|
0x02 总结
不同于常规的 声明对象=new 类
的方式.通过工厂模式可以通过参数来创建对象.动态的创建对象.
文章标题:工厂模式
本文作者:zhu8fei
发布时间:2024-08-13, 16:59:36
最后更新:2024-08-16, 17:36:25
原始链接:http://www.zhu8fei.com/2024/08/13/factory-method-pattern.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zhu8fei@163.com