简单工厂模式(Simple Factory Pattern):
定义:简单工厂模式又被称为静态工厂方法模式,具体指创建一个类似于工厂的类,通过对该类中成员函数的调用返回不同类型的对象。
在面向对象编程方式中,简单工厂模式是一种经常用到的模式。简单工厂模式提供了一种在实时状态下实例化对象的机制,该模式的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建并返回那个产品类的实例化对象。示例代码:
<?php
abstract class Product { abstract function getName(); } class ProductA extends Product {
function getName() { echo "我是ProductA"; } } class ProductB extends Product {
function getName() { echo "我是ProductB"; } } class ProductFactory {
static function create($name) { switch($name) { case "A": return new ProductA(); case "B": return new ProductB(); } } } $product = ProductFactory::create("A");
$product->getName(); echo "<br>"; $product = ProductFactory::create("B"); $product->getName(); ?> 在上述示例代码中,抽象类Product定义了一个获取产品名称的成员方法getName(),Product抽象类的具体实现为子类ProductA和ProductB。工厂类ProductFactory用来决定在什么时候创建并返回哪个产品类的实例化对象,使用工厂类时将参数传递给其成员方法Create(),就可以创建Product类的对象,无需考虑具体的生产细节。
简单工厂模式的类关系图:
![]() 简单工厂模式的运行结果:
![]() |
|