Protoype pattern yang secara bahasa katanya google translate artinya bentuk asli atau bentuk dasar, akan ane bahas pada postingan kali ini dengan Java, C# dan PHP, design pattern ini tergolong pada creation pattern yang menangani pembuatan object :D , seperti namanya prototype pattern ini berguna untuk mengkloning suatu object sehingga akan seperti bentuk aslinya, gak mbuang - mbuang dan pasti seperti object aslinya... sudah paham kan ? kalo implementasinya pada Java dan C# itu sama, tetapi pada PHP kita bisa memanfaatkan magic method "__clone()" untuk mengkloning sebuah object instance dari class...
Tetapi contoh pattern prototype pada postingan ini ane gak pake magic method "__clone()" karena ane menyesuaikan dengan bahas lainnya yang ane pakai yaitu Java dan C# dan PHP nya ane sesuaikan dengan standart dari 2 bahasa pemrograman ini. tapi intinya sama kok, hanya saja cooding nya berbeda, algoritmanya pun juga sama tentunya :D
dari pada ane panjang lebar menjelaskan dan ente tambah bingung lebih baik ane kasi langsung kode nya dan silahkan di analisa.
dari pada ane panjang lebar menjelaskan dan ente tambah bingung lebih baik ane kasi langsung kode nya dan silahkan di analisa.
Java
package Clone;
public class MainClass {
public static void main(String[] args) {
Manusia man_1 = new Manusia("Rizal Afani");
System.out.println("Class Manusia asli, "+man_1);
Manusia man_2 = (Manusia)man_1.Cloning();
System.out.println("Class Manusia cloning, "+man_2);
}
}
interface Prototype{
public Prototype Cloning();
}
class Manusia implements Prototype{
public Manusia(String name) {
this.name = name;
}
private String name;
@Override
public Prototype Cloning() {
return new Manusia(name);
}
public String toString(){
return "Class ini nama nya "+this.name;
}
}
C#
using System;
namespace Prototype
{
class Program
{
public static void Main(string[] args)
{
Manusia man_1 = new Manusia("Rizal Afani");
Console.WriteLine("Class Manusia asli, "+man_1.ToString());
Manusia man_2 = (Manusia)man_1.Cloning();
Console.WriteLine("Class Manusia cloning, "+man_2.ToString());
Console.ReadKey(true);
}
}
interface Prototype{
Prototype Cloning();
}
class Manusia : Prototype{
public Manusia(string name) {
this.name = name;
}
private string name;
public Prototype Cloning() {
return new Manusia(name);
}
public string ToString(){
return "Class ini nama nya "+this.name;
}
}
}
PHP
<?php
interface Prototype{
public function Cloning();
}
class Manusia implements Prototype{
function __construct($name) {
$this->name = $name;
}
private $name;
function Cloning() {
return new Manusia($this->name);
}
function toString(){
return "Class ini nama nya ".$this->name.'< br />';
}
}
$man_1 = new Manusia("Rizal Afani");
echo("Class Manusia asli, ".$man_1->toString());
$man_2 = $man_1->Cloning();
echo("Class Manusia cloning, ".$man_2->toString());
?>
kalo ente perhatikan pada kode diatas ane cuma melakukan inisialisasi 1 kali pada program main, kemudian ane cloning dah class yang ane inisialisasi tadi dengan memanfaatkan function cloning yang ber return value prototype dan juga hasil dari override interface prototype.. dan hasilnya terlihat seperti object aslinya :D ... sekian dulu postingan kali ini dan semoga bermanfaat.