PHP實現簡單工廠模式

PHP代碼實現簡單工廠模式

<?php

// 簡單工廠模式

abstract class Operation
{
	public $numberA = 0;

	public $numberB = 0;

	abstract public function getResult();
}

// 加法運算
class OperationAdd extends Operation
{
	public function getResult()
	{
		return $this->numberA + $this->numberB;
	}
}

// 減法運算
class OperationSub extends Operation
{
	public function getResult()
	{
		return $this->numberA - $this->numberB;
	}
}

// 乘法運算
class OperationMult extends Operation
{
	public function getResult()
	{
		return $this->numberA * $this->numberB;
	}
}

// 除法運算
class OperationDiv extends Operation
{
	public function getResult()
	{
		return $this->numberA / $this->numberB;
	}
}

// 運算工廠類
class OperationFactory
{
	public function createOperation($option)
	{
		switch ($option) {
			case '+':
				$result = new OperationAdd();
				break;
			case '-':
				$result = new OperationSub();
				break;
			case '*':
				$result = new OperationMult();
				break;
			case '/':
				$result = new OperationDiv();
				break;
		}

		return $result;
	}
}


$operationObject = (new OperationFactory())->createOperation('+');
$operationObject->numberA = 3;
$operationObject->numberB = 5;

var_dump($operationObject->getResult());

發佈了18 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章