added flyweight pattern

This commit is contained in:
janukobytsch
2015-02-02 00:11:48 +01:00
parent 27b9c2b3cf
commit d97f9831d5
4 changed files with 121 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace DesignPatterns\Structural\Flyweight;
/**
* Implements the flyweight interface and adds storage for intrinsic state, if any.
* Instances of concrete flyweights are shared by means of a factory.
*/
class CharacterFlyweight implements FlyweightInterface {
/**
* Any state stored by the concrete flyweight must be independent of its context.
* For flyweights representing characters, this is usually the corresponding character code.
* @var string
*/
private $name;
/**
* Constructor.
* @param string $name
*/
public function __construct($name) {
$this->name = $name;
}
/**
* Clients supply the context-dependent information that the flyweight needs to draw itself
* For flyweights representing characters, extrinsic state usually contains e.g. the font
* @param string $font
*/
public function draw($font)
{
print_r("Character {$this->name} printed $font \n");
}
}