不同对象类型的工厂对象
创始人
2025-01-08 23:00:25
0

使用抽象工厂模式,根据不同的条件返回不同的工厂对象。

实现代码如下:

// 定义一个抽象工厂接口
interface AbstractFactory {
   public function createProductA();
   public function createProductB();
}

// 实现具体工厂类
class ConcreteFactoryForType1 implements AbstractFactory {
   public function createProductA() {
      return new ProductType1A();
   }
   public function createProductB() {
      return new ProductType1B();
   }
}

class ConcreteFactoryForType2 implements AbstractFactory {
   public function createProductA() {
      return new ProductType2A();
   }
   public function createProductB() {
      return new ProductType2B();
   }
}

// 定义抽象产品接口
interface AbstractProductA {
   public function usefulFunctionA(): string;
}

interface AbstractProductB {
   public function usefulFunctionB(): string;
}

// 实现具体产品类
class ProductType1A implements AbstractProductA {
   public function usefulFunctionA(): string {
      return "The result of the product A1.";
   }
}

class ProductType1B implements AbstractProductB {
   public function usefulFunctionB(): string {
      return "The result of the product B1.";
   }
}

class ProductType2A implements AbstractProductA {
   public function usefulFunctionA(): string {
      return "The result of the product A2.";
   }
}

class ProductType2B implements AbstractProductB {
   public function usefulFunctionB(): string {
      return "The result of the product B2.";
   }
}

// 客户端代码,根据不同条件调用不同的工厂来获取不同类型的对象
$clientCode = function (AbstractFactory $factory) {
    $productA = $factory->createProductA();
    $productB = $factory->createProductB();

    echo $productA->usefulFunctionA() . "
"; echo $productB->usefulFunctionB() . "
"; }; // 调用客户端代码 $clientCode(new ConcreteFactoryForType1()); $clientCode(new ConcreteFactoryForType2());

相关内容

热门资讯

一分钟揭秘!财神十三张脚本效果... 财神十三张脚本效果图是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加...
透视辅助!天天辅助器透视,wp... 透视辅助!天天辅助器透视,wpk真的有透视嘛(辅助挂)详细开挂辅助软件;亲,wpk真的有透视嘛这款游...
六分钟了解!三哥玩十三张辅助器... 大家好,今天小编来为大家解答三哥玩十三张辅助器这个问题咨询软件客服可以免费测试直接加微信(13670...
透视代打!决战手游辅助,淘宝买... 透视代打!决战手游辅助,淘宝买wepoker透视有用吗(辅助挂)详细开挂辅助挂您好:淘宝买wepok...
实测揭晓!牵手跑的快小程序技巧... 您好:福建天天开心辅助软件大全这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
透视真的!中至鹰潭辅助器,we... 透视真的!中至鹰潭辅助器,wepoker透视有吗(辅助挂)详细开挂辅助挂;无需打开直接搜索打开薇:1...
一分钟带你了解!同城游修改器,... 同城游修改器是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微信(...
透视数据!兄弟十三水辅助,wp... 透视数据!兄弟十三水辅助,wpk透视插件(辅助挂)详细开挂辅助工具这是一款可以让一直输的玩家,快速成...
每日必看教程!微乐山西小程序破... 每日必看教程!微乐山西小程序破解器,一起宁德钓蟹辅助器(真的有挂辅助开挂软件);无需打开直接搜索打开...
透明科技!wepoker专用辅... wpk软件是真的吗是一款专注玩家量身打造的游戏记牌类型软件,在wpk软件是真的吗这款游戏中我们可以记...