Refactored example of Proxy pattern

This commit is contained in:
Dominik Liebler
2018-06-14 22:17:14 +02:00
parent a494c07255
commit ea85485b85
10 changed files with 197 additions and 413 deletions

View File

@@ -0,0 +1,25 @@
<?php
namespace DesignPatterns\Structural\Proxy;
class HeavyBankAccount implements BankAccount
{
/**
* @var int[]
*/
private $transactions = [];
public function deposit(int $amount)
{
$this->transactions[] = $amount;
}
public function getBalance(): int
{
// this is the heavy part, imagine all the transactions even from
// years and decades ago must be fetched from a database or web service
// and the balance must be calculated from it
return array_sum($this->transactions);
}
}