工厂设计模式28 Aug 2024 | 5 分钟阅读 工厂设计模式是创建型设计模式的一种,它允许我们使用接口或类来创建对象以进行实例化。 工厂方法为我们提供了创建对象的最佳方法。 在此方法中,对象是在不向客户端公开逻辑的情况下创建的。 要创建新类型的对象,客户端使用相同的通用接口。 问题假设我们计划创建一个网站,在全国各地提供书籍。 该网站的初始版本只接受书籍的订单,但随着时间的推移,我们的网站越来越受欢迎,现在我们将添加更多销售商品,例如衣服和鞋类。 这是一个非常好的主意,但是软件开发人员呢? 现在他们必须更改整个代码,因为大部分代码都与书籍的类相关,并且开发人员必须更改整个代码库。 这可能导致代码混乱。 让我们用另一个例子来理解这个概念 - 示例 - 让我们了解一下我们如何解决此类问题。 解决方案在解决方案中,我们使用特殊的工厂方法来调用构造对象,而不是使用直接的对象构造。 创建对象的两种方法非常相似,但它们在工厂方法中被调用。 例如 - 我们的销售商品,例如书籍、手机、衣服和配件类,应该包括购买接口,该接口将声明一个方法 buy。 每个类将以独特的方式实现这些方法。 让我们看下图以更具体地理解它。 示例 - 输出 - voiture book libro biclothtte phone teléfono clothtte cloth paño 使用工厂方法的优点以下是工厂方法的优点。
使用工厂方法的缺点使用工厂方法的缺点如下所示。
适用性它的概念与多态性相同,我们不需要更改客户端代码。 例如 - 假设我们要绘制不同的形状,例如矩形、正方形、圆形等。 我们可以使用工厂方法根据用户的输入创建实例。 在出租车应用程序中,我们可以预订 1 轮车、2 轮车、3 轮车和 4 轮车。 在这里,用户可以预订他想预订的任何行程。 借助工厂方法,我们可以创建一个名为Booking的类,该类将帮助我们创建接受用户输入的实例。 因此,开发人员不需要更改整个代码来添加新功能。 工厂方法消除了难以维护的复杂逻辑代码。 它还阻止我们在代码库中进行更改,因为修改现有代码可能会引入细微的错误并改变行为。 在哪里使用工厂方法首先我们需要确定可以实现工厂方法的情况。 它可以用于应用程序依赖于接口(产品)来完成任务,并且该已定义接口有多个具体实现的地方。 有很多问题可以使用工厂方法来解决。 我们定义了几个符合此描述的示例。 替换复杂的逻辑代码 通常,代码由难以维护的逻辑组成,例如 if/else/elif,因为添加了具有某些要求的更改的新路径。 使用工厂方法,我们可以将每个逻辑路径的主体放入具有通用接口的各种已定义的函数或类中。 开发人员可以为修改提供具体的实现。 在通用接口下组合类似的功能 假设我们需要将特定滤镜应用于图像。 工厂方法将根据用户输入找到特定的滤镜。 工厂方法可以应用实际的实现。 支持相同功能的多个实现 一群科学家需要将卫星图像从一个坐标系转换为另一个坐标系。 但是,一个系统具有多个算法来执行不同级别的转换。 应用程序可以允许用户选择理想的算法。 工厂方法可以根据此选项坚定地实现算法。 集成相关的外部系列 一个视频流应用程序希望集成多个外部服务。 该应用程序允许用户了解他们的视频来自哪里。 工厂方法根据用户的偏好创建正确的集成。 结论工厂方法是一种流行且广泛使用的创建型设计模式。 它可以用于接口的各种具体实现。 工厂方法消除了难以维护的复杂逻辑代码。 它还阻止我们修改现有代码以支持新需求。 下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。