Sama seperti design pattern observer, kita membutuhkan 2 buah interface. Interface yang pertama sebagai creator (dalam hal ini sebagai bagian yang buat koneksi) dan interface yang kedua sebagai pengenal dari database yang didaftarkan. Selanjutnya kedua interface tersebut diimplementasikan oleh class-class yang berikutnya.
interface_factory.php
<?php
interface DB_Koneksi
{
public function buat_koneksi($db);
}
interface DB_Name
{
public function nama_database();
}
?>
Setelah itu kita buat sebuah class yang mengimplementasikan interface DB_Koneksi. Memanfaatkan function buat_koneksi() yang di dalamnya koneksi dipilih sesuai dengan database yang telah ditentukan. Kemudian memanggil salah satu class yang sesuai dengan pilihan databasenya.
Pilih_Koneksi.php
<?php
include('interface_factory.php');
include('DB_Oracle.php');
include('DB_Mysql.php');
class Pilih_Koneksi implements DB_Koneksi
{
public function buat_koneksi($param)
{
if($param == "oracle")
{
return new DB_Oracle();
}
else if($param == "mysql")
{
return new DB_Mysql();
}
}
}
?>
Yang terakhir, kita buat 2 buah class yang mengimplementasikan interface DB_Name. Dengan memanfaatkan function database_name(), dihasilkan output sesuai dengan database yang terpilih.
DB_Oracle.php
<?php
class DB_Oracle implements DB_Name
{
public function nama_database()
{
return "Anda Memakai Database Oracle";
}
}
?>
DB_Mysql.php
<?php
class DB_Mysql implements DB_Name
{
public function nama_database()
{
return "Anda Memakai Database MySQL";
}
}
?>
Cara penggunaanya seperti di bawah ini :
factory.php
<?php
include('Pilih_Koneksi.php');
$koneksi = new Pilih_Koneksi();
$pilih_koneksi = $koneksi->buat_koneksi("mysql");
echo $pilih_koneksi->nama_database();
?>
sumber : wikipedia&gedelumbung
0 Komentar untuk "penerapan desain pattern factory method di php"