php工厂方法模式

设计模式
使用设计模式是 促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。
工厂方法模式
这种设计模式网上可以查阅的资源有很多,但是很多都是理论性太强,理解起来不是很容易,首先我们先看一下,这种模式是如何定义的?使用的场景是什么?
定义 定义一个创建对象的接口,但是让 子类去实例化具体类工厂方法模式让类的实例化 延迟到子类中。针对每一种产品提供一个工厂类,通过不同的工厂实例来创建不同的产品实例,在同一等级结构中,支持增加任意产品。
问题引出:框架需要为多个应用提供 标准化的架构模型,同时也要 允许独立应用定义自己的域对象并对其进行实例化。
1 类的实现
工厂方法模式包含如下角色:
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简单工厂模式是一种创建型设计模式,它提供了一种方式来封装一个的创建逻辑。图是描述软件系统的静态结构的图表,下面是一个简单工厂方法模式图示例: 在图中,我们通常会看到以下几个主要: 1. **AbstractFactory(抽象工厂)**:这是所有工厂的超,用于定义创建对象的方法。它有一个名为 `createProduct` 的方法,这个方法将返回具体的产品的对象。 ```php + AbstractFactory { + createProduct(ProductType type): Product } ``` 2. **ConcreteFactoryA(具体工厂A)**:这个继承了抽象工厂。具体工厂A有一个名为 `createProductA` 的方法,它创建并返回产品A的对象。 ```php - ConcreteFactoryA extends AbstractFactory { + createProductA(): ProductA } ``` 3. **ConcreteProductA(产品A)**:这是具体的产品,它有一个方法用于执行产品A的功能。 ```php - ConcreteProductA implements ProductType { + performAction(): void } ``` 4. **Client(客户端)**:这是使用产品的客户端代码。它调用具体工厂的 `createProduct` 方法来获取产品对象,并使用这个对象。 ```php - Client { use ProductA; performActionWithProduct(): void { productA.performAction(); } } ``` 以上就是一个简单的简单工厂方法模式图。这个模式的主要优点是,它可以让客户端代码与具体的产品的创建逻辑分离,这样就可以在不需要知道具体的产品的情况下使用产品。这个模式的主要缺点是,它可能会有过多的工厂型,这在一些复杂的情况下可能会带来问题。不过这个问题可以通过其他的设计模式工厂模式或原型模式来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值