不同对象类型的工厂对象
创始人
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...
分享开挂!新二号辅助下载,微乐... 微乐手游脚本辅助是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微...
曝光辅助!雀友会钻石辅助器潮汕... 您好:雀友会钻石辅助器潮汕麻将这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
发现开挂!雀友会广东潮汕辅助透... 发现开挂!雀友会广东潮汕辅助透视,樱花之盛能不能开挂(盘点一款开挂辅助下载);1、很好的雀友会广东潮...
正品辅助!微信小程序财神十三章... 正品辅助!微信小程序财神十三章特殊牌,蜀渝牌乐汇挂机软件(推荐一款开挂辅助工具)【无需打开直接搜索加...
分享辅助!皇豪互娱科技,aap... aapoker怎么控制牌开挂教程视频分享装挂详细步骤在当今的网络游戏中,aapoker怎么控制牌作为...
推荐开挂!全游大厅拼十辅助,w... 推荐开挂!全游大厅拼十辅助,wepoker新号好一点吗(我来向大家传授开挂辅助安装);无需打开直接搜...
正版开挂!新九哥辅助,九江讨赏... 正版开挂!新九哥辅助,九江讨赏辅助中至小程序(透视辅助开挂辅助安装)>>您好:软件加13670430...
发现开挂!新超圣正版辅助,aa... >>您好:aapoker安装包怎么使用确实是有挂的,很多玩家在这款aapoker安装包怎么使用游戏中...
通报开挂!随意玩透视辅助软件,... 通报开挂!随意玩透视辅助软件,道游互娱透视辅助截图(最新技巧开挂辅助脚本) >>您好:软件加薇136...