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

相关内容

热门资讯

有挂技巧开挂!微信小程序微乐辅... 有挂技巧开挂!微信小程序微乐辅助免费,hhpoker德州真的假的(透视免费开挂辅助下载) >>您好:...
有挂头条辅助!微信边锋干瞪辅助... 有挂头条辅助!微信边锋干瞪辅助,小南娱乐开挂系统(玩家必看教程开挂辅助安装);人气非常高,ai更新快...
有挂教程开挂!欢乐联盟免费辅助... 【亲,欢乐联盟免费辅助 这款游戏可以开挂的,确实是有挂的,很多玩家在这款欢乐联盟免费辅助中打牌都会发...
有挂分析开挂!德扑之星私人局辅... 有挂分析开挂!德扑之星私人局辅助,wepoker怎么获得好牌(研究成果开挂辅助下载);打开点击测试直...
有挂分享辅助!大唐辅助软件,边... >>您好:大唐辅助软件确实是有挂的,很多玩家在这款大唐辅助软件游戏中打牌都会发现很多用户的牌特别好,...
发现有挂开挂!来几局免费辅助器... 发现有挂开挂!来几局免费辅助器,微乐陕西小程序破解器(必知教程开挂辅助脚本);无需打开直接搜索加薇1...
有挂技巧辅助!科乐天天踢辅助视... 有挂技巧辅助!科乐天天踢辅助视频,心悦游戏辅助(一起来探讨开挂辅助神器)>>您好:软件加薇13670...
有挂方法开挂!潮友辅助器开挂软... 潮友辅助器开挂软件 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: ...
确实有挂开挂!宁波同乐游辅助下... 确实有挂开挂!宁波同乐游辅助下载,潮汕馆辅助(科普攻略开挂辅助神器) 了解更多开挂安装加(13670...
有挂秘笈开挂!打两圈绝对有辅助... 有挂秘笈开挂!打两圈绝对有辅助,hhpoker可以开挂吗(透视数据开挂辅助插件)>>您好:软件加薇1...