Skip to content

Instantly share code, notes, and snippets.

@Bolinha1
Last active August 29, 2015 14:03
Show Gist options
  • Save Bolinha1/d01eefbdf2d45ebd2020 to your computer and use it in GitHub Desktop.
Save Bolinha1/d01eefbdf2d45ebd2020 to your computer and use it in GitHub Desktop.
<?php
namespace DesignPatterns;
interface FactoryUser
{
public function factoryAdministrator();
public function factoryVendor();
public function factoryClient();
}
class FactoryUsers implements FactoryUser
{
public function factoryAdministrator()
{
return new Administrator();
}
public function factoryVendor()
{
return new Vendor();
}
public function factoryClient()
{
return new Client();
}
}
class Administrator
{
public function get()
{
return "i'm administrator";
}
}
class Vendor
{
public function get()
{
return "i'm vendor";
}
}
class Client
{
public function get()
{
return "i'm client";
}
}
$factoryUsers = new FactoryUsers();
$client = $factoryUsers->factoryClient();
$vendor = $factoryUsers->factoryVendor();
$admin = $factoryUsers->factoryAdministrator();
var_dump($client->get());
var_dump($vendor->get());
var_dump($admin->get());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment