PHP設計模式——原型模式

問題:假設有一款遊戲,分爲A和B兩個地方,A和B兩個地方都有E,F三個環境,三個環境分別都有一些操做。php

<?php
abstract class E
{
  abstract function index();
}

abstract class F
{
  abstract function index();
}

class AE extends E
{
  public function index()
  {
    echo 'AE';
  }
}

class AF extends F
{
  public function index()
  {
    echo 'AF';
  }
}

class BE extends E
{
  public function index()
  {
    echo 'BE';
  }
}

class BF extends F
{
  public function index()
  {
    echo 'BF';
  }
}

class AddressFactory
{
  private $f;
  private $e;
  public function __construct(E $e,F $f)
  {
    $this->e = $e;
    $this->f = $f;
  }
  public function getF()
  {
    return clone $this->f;
  }
  public function getE()
  {
    return clone $this->e;
  }
}

$all = new AddressFactory(new BE(),new AF());
$e = $all->getE();
$e->index();
相關文章
相關標籤/搜索