İçeriğe geç

Simple Factory (Basit Fabrika) PHP Tasarım Deseni

Basit ve kontrollü bir şekilde nesneler oluşturmak için kullanılır. Statik olmadığı için statik fabrikadan farklıdır. Farklı parametreli birden fazla fabrikanız olabilir, alt sınıflara bağlanabilir ve kullanabilirsiniz. Statik bir fabrika yerine her zaman tercih edilmelidir.

Örnek kodlarla devam edelim;

<?php 
// SimpleFactory.php
declare(strict_types=1);

namespace DesignPatterns\Creational\SimpleFactory;

class SimpleFactory
{
    public function createBicycle(): Bicycle
    {
        return new Bicycle();
    }
}

// Bicycle.php
declare(strict_types=1);

namespace DesignPatterns\Creational\SimpleFactory;

class Bicycle
{
    public function driveTo(string $destination)
    {
    }
}

Kullanımı şu şekilde olacaktır;

 $factory = new SimpleFactory();
 $bicycle = $factory->createBicycle();
 $bicycle->driveTo('Paris');

Örneğe ait test;


<?php
// Tests/SimpleFactoryTest.php
declare(strict_types=1);

namespace DesignPatterns\Creational\SimpleFactory\Tests;

use DesignPatterns\Creational\SimpleFactory\Bicycle;
use DesignPatterns\Creational\SimpleFactory\SimpleFactory;
use PHPUnit\Framework\TestCase;

class SimpleFactoryTest extends TestCase
{
    public function testCanCreateBicycle()
    {
        $bicycle = (new SimpleFactory())->createBicycle();
        $this->assertInstanceOf(Bicycle::class, $bicycle);
    }
}
Kategori:Creational Tasarım Desenleri

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.