`

`
Powered by Blogger.

penerapan desain pattern command di php




             Design pattern Command adalah sebuah pola dimana object yang digunakan untuk mewakili maupun merangkum informasi yang diperlukan untuk memanggil metode di waktu yang berbeda. Tiga aturan yang ada dalam design pattern Command yaitu client, invoker, dan reciver. Contoh dari design pattern Command ini ialah pada saklar lampu, dimana satu saklar dapat mewakili 2 perintah (metode) yaitu hidup (on) dan mati (off), yang disini saya buat ke dalam sebuah abstract class SwitchLampu. Ada juga class Lampu yang berfungsi untuk menetapkan informasi lampu dan statusnya (on atau off). Setelah itu ada 2 class yang meng-Extends abstract class SwitchLampu, yaitu HidupkanLampu dan MatikanLampu. Berikut implementasinya ke dalam script PHP :





<?php

class Lampu {
private $lokasi_lampu;
private $status;
function __construct($lokasi_lampu_in, $status_in) {
$this->aturLampu($lokasi_lampu_in);
$this->aturStatus($status_in);
}
function ambilLampu() {
return $this->lokasi_lampu;
}
function ambilStatus() {
return $this->status;
}
function aturLampu($lokasi_lampu_in) {
$this->lokasi_lampu = $lokasi_lampu_in;
}
function aturStatus($status_in) {
$this->status = $status_in;
}
function nyalakan() {
$this->aturLampu('Nyalakan '.$this->ambilLampu());
$this->aturStatus(str_replace('MATI','HIDUP',$this->ambilStatus()));
}
function matikan() {
$this->aturLampu(str_replace('Nyalakan','Matikan',$this->ambilLampu()));
$this->aturStatus(str_replace('HIDUP','MATI',$this->ambilStatus()));
}
function tampilkan() {
return $this->ambilLampu().' - '.$this->ambilStatus();
}
}

abstract class SwitchLampu {
protected $lampu;
function __construct($lampu_in) {
$this->lampu = $lampu_in;
}
abstract function jalankan();
}

class HidupkanLampu extends SwitchLampu {
function jalankan() {
$this->lampu->nyalakan();
}
}



class MatikanLampu extends SwitchLampu {
function jalankan() {
$this->lampu->matikan();
}
}



class Jalankan{
function panggil(SwitchLampu $lampu_in) {
$lampu_in->jalankan();
}
}
$jalan = new Jalankan();
$lampu = new Lampu('Lampu Taman', 'status MATI');
cetak('Kondisi Awal :');
cetak($lampu->tampilkan());
cetak('');

$lampu_hidup = new HidupkanLampu($lampu);
$jalan->panggil($lampu_hidup);
cetak('Ketika dihidupkan :');
cetak($lampu->tampilkan());
cetak('');

$lampu_mati = new MatikanLampu($lampu);
$jalan->panggil($lampu_mati);
cetak('Ketika dimatikan :');
cetak($lampu->tampilkan());
cetak('');

function cetak($isi) {
echo $isi."<br/>";
}

?>


            Di bagian akhir, kita buat sebuah class yang mengimplementasikan abstract function dari class SwitchLampu untuk menjalankan function matikan atau hidupkan dari class Lampu. Kemudian perubahan tersebut ditampilkan dengan memanfaatkan function tampilkan yang juga dimilik oleh class Lampu.




sumber : wikipedia & gedelumbung
Bagikan :
+
Previous
Next Post »
0 Komentar untuk "penerapan desain pattern command di php"

 
Template By Kunci Dunia
Back To Top