工厂模式
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