不同对象类型的工厂对象
创始人
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());

相关内容

热门资讯

玩家实测!微信小程序蜀山四川辅... 您好,微信小程序蜀山四川辅助器这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302...
一分钟教你!微友助手破解版,广... 一分钟教你!微友助手破解版,广东雀神辅助器透视,详细挂(有挂攻略);1、广东雀神辅助器透视辅助器安装...
一分钟揭秘!茶馆游戏辅助,湖北... 一分钟揭秘!茶馆游戏辅助,湖北卡五星插件,详细神器(有挂秘籍)1、这是跨平台的湖北卡五星插件轻量版有...
今日重大通报!天酷辅助器,来物... 今日重大通报!天酷辅助器,来物局怎么下载,详细教程(有挂猫腻)暗藏猫腻,小编详细说明来物局怎么下载破...
科技揭秘!九游破解辅助插件官网... 科技揭秘!九游破解辅助插件官网,微信小游戏万能修改器,详细脚本(有人有挂)该软件可以轻松地帮助玩家将...
玩家必看!微信海豚大厅辅助,蛮... 玩家必看!微信海豚大厅辅助,蛮王辅助,详细教程(有挂技术)1、微信海豚大厅辅助免费辅助多个强度级别选...
重大来袭!茶馆游戏辅助,湖北卡... 重大来袭!茶馆游戏辅助,湖北卡五星教程辅助,详细插件(有挂技术)1、湖北卡五星教程辅助透视辅助软件激...
玩家必备教程!陕西三代二破解,... 玩家必备教程!陕西三代二破解,微信小程序游戏破解微乐游戏,详细教程(有挂攻略)玩家必备教程!陕西三代...
一分钟了解!威信茶馆app插件... 一分钟了解!威信茶馆app插件,开心十三张有没有挂,详细插件(有挂辅助)1、开心十三张有没有挂辅助软...
一分钟了解!雀神广东定制插件辅... 一分钟了解!雀神广东定制插件辅助,欢乐达人暗堡链接脚本,详细app(有挂总结)1、雀神广东定制插件辅...