php设计模式

xiaoxiao2021-02-28  95

<?php class PizzaA { public function __construct () { print_r('create PizzaA instance'); } public function cook () { print_r('cooking pizza!'); } public function box () { print_r('boxing pizza!'); } }

<?php class PizzaB { public function __construct () { print_r('create PizzaB instance'); } public function cook () { print_r('cooking pizza!'); } public function box () { print_r('boxing pizza!'); } } <?php class PizzaStore { public function __construct (SimplePizzaFactory $pizzaFactory) { $this->factory = $pizzaFactory; } public function orderPizza ($type) { $pizza = $this->factory->createPizza($type); $pizza->cook(); $pizza->box(); } } <?php require 'PizzaA.php'; require 'PizzaB.php'; class SimplePizzaFactory { public function createPizza ($type) { $pizza = ''; if ($type == 'PizzaA') { $pizza = new PizzaA(); } elseif ($type == 'PizzaB') { $pizza = new PizzaB(); } return $pizza; } } <?php require 'PizzaStore.php'; require 'SimplePizzaFactory.php'; $factory = new SimplePizzaFactory(); $p_store = new PizzaStore($factory); $p_store->orderPizza('PizzaA');

说明:  抽象一个披萨工厂的类 专门用来处理生产各种披萨    生产完毕  送到披萨商店   当然这个时候披萨商店要拿到披萨的实例,然后执行披萨自己的一系列操作

工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类

转载请注明原文地址: https://www.6miu.com/read-73802.html

最新回复(0)