Rabu, 27 Maret 2013

DESIGN PATTERN SINGLETON

Design Pattern

  •  Pengenalan pada Design Pattern
         Apakah Design pattern?

Secara singkat, Design pattern adalah sebuah solusi untuk mengulang masalah Design. Solusi ini telah dikembangkan, dikompile, dan disaring oleh programmer yang sebelumnya telah menghadapi masalah ini.
Sebuah Design pattern adalah salah satu jenis petunjuk yang menggunakan tipe "Jika Anda memiliki masalah ini, maka lakukan ini." Hal tersebut serupa dengan sebuah algoritma : sebagai contoh, jika Anda ingin melakukan sebuah operasi pencarian pada sebuah daftar, Anda tidak perlu menyelesaikan dengan solusi Anda sendiri; terdapat beberapa algoritma yang menyediakan fungsi sorting ini seperti pencarian biner. Perbedaan antara sebuah Design pattern dan sebuah algoritma adalah bahwa algoritma fokus pada implementasi solusi : sebuah algoritma biasanya mendaftar dari atas ke bawah menuju ke tahap akhir dari action-action yang terurut dimana yang dibutuhkan untuk menghasilkan sebuah solusi. Sebuah pattern memusatkan untuk menghasilkan beberapa Design: Hal tersebut memberitahu kepada pengembang apa yang harus diperbuat sebagai lawan dari bagaimana cara melakukannya.

Singleton Pattern adalah sebuah pattern dari sekian banyak pattern yang ada di dunia pemrograman. SP digunakan untuk melakukan pembatasan sebuah class memiliki banyak objek/ instance. Mengapa begitu? Dalam kondisi tertentu memang harus diberlakukan seperti itu, contohnya untuk koneksi ke database, tidak perlu setiap kali akan melakukan koneksi ke database membuat objek baru dari class yang menangani koneksi ke database, cukup satu objek saja. Karena dalam SP hanya satu objek yang diperbolehkan ‘berlalu-lalang’ dalam sistem, maka setiap nilai dari variable class tersebut juga harus diperhatikan baik-baik, karena setiap nilai dalam variabel yang telah diubah oleh proses, akan tetap pada kondisi terakhir. Misalkan sebuah proses mengubah nilai variabel objek dari SP dengan NULL, maka nilai variabel tersebut akan bernilai NULL selama tidak diubah oleh proses lainnya.

Berikut contoh penerapan programnya dalam bentuk c# :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class ExampleSingletonPattern
    {

        public static void Main(string[] args)
        {

            Koneksi baris1 = Koneksi.Get();
            baris1.panggil("query 1");
            Koneksi baris2 = Koneksi.Get();
            baris2.panggil("query 2");


            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);

        }
    }
    public class Koneksi
    {
        public Koneksi()
        {

        }
        public static Koneksi on = null;
        public static int menghitung;

        public static Koneksi Get()
        {
            if (Koneksi.on == null)
            {
                Koneksi.on = new Koneksi();
            }
            return Koneksi.on;
        }

        public void panggil(string kata)
        {
            Console.WriteLine(kata);
        }
    }
} 
 

Tidak ada komentar:

Posting Komentar