php设计模式

xiaoxiao2021-02-28  80

<?php class ChinaPizzaA { public function __construct () { print_r('create ChinaPizzaA instance'); } public function cook () { print_r('cooking ChinaA pizza!'); } public function box () { print_r('boxing ChinaA pizza!'); } } <?php class ChinaPizzaB { public function __construct () { print_r('create CHinaPizzaB instance'); } public function cook () { print_r('cooking ChinaB pizza!'); } public function box () { print_r('boxing ChinaB pizza!'); } } <?php class UsPizzaA { public function __construct () { print_r('create UsPizzaA instance'); } public function cook () { print_r('cooking Uspizza!'); } public function box () { print_r('boxing Uspizza!'); } } <?php class UsPizzaB { public function __construct () { print_r('create UsPizzaB instance'); } public function cook () { print_r('cooking UspizzaB!'); } public function box () { print_r('boxing UspizzaB!'); } } <?php require 'ChinaPizzaA.php'; require 'ChinaPizzaB.php'; require_once 'PizzaStore.php'; class ChinaPizzaStore extends PizzaStore { public function createPizza ($type) { $pizza = ''; if ($type == 'PizzaA') { $pizza = new ChinaPizzaA(); } elseif ($type == 'PizzaB') { $pizza = new ChinaPizzaB(); } return $pizza; } } <?php require 'UsPizzaA.php'; require 'UsPizzaB.php'; require_once 'PizzaStore.php'; class UsPizzaStore extends PizzaStore { public function createPizza ($type) { $pizza = ''; if ($type == 'PizzaA') { $pizza = new UsPizzaA(); } elseif ($type == 'PizzaB') { $pizza = new UsPizzaB(); } return $pizza; } } <?php abstract class PizzaStore { public function orderPizza ($type) { $pizza = $this->createPizza($type); $pizza->cook(); $pizza->box(); return $pizza; } protected abstract function createPizza ($type) ; } <?php require 'ChinaPizzaStore.php'; require 'UsPizzaStore.php'; $p_store = new ChinaPizzaStore(); $p_store->orderPizza('PizzaA'); $p_store = new UsPizzaStore(); $p_store->orderPizza('PizzaA'); 说明: 采用抽象方法createPizza 让子类的商店去继承  强制让他实现这个方法  从而保持框架低耦合性 可控
转载请注明原文地址: https://www.6miu.com/read-76226.html

最新回复(0)