Singleton dalam NetBeans Platform


NetBeans Platform

NetBeans Platform

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans Platform 6.9

Biasanya kita menggunakan kelas Factory untuk mengimplementasikan pattern Singleton, namun di NetBeans kita tidak perlu menggunakan hal tersebut, kita hanya perlu menggunakan Services dan Lookup API. Hal ini akan memudahkan kita karena tidak perlu membuat sebuah kelas factory lagi.

Misalnya kita punya sebuah interface seperti ini

package khannedy.singleton.api;

/**
 * @author Eko Kurniawan Khannedy
 */
public interface ServiceFactory {

    void firstMethod();

    void secondMethod();

    void thirdMethod();
}

Setelah itu kita buat implementasinya

package khannedy.singleton.api.impl;

import khannedy.singleton.api.ServiceFactory;

/**
 * @author Eko Kurniawan Khannedy
 */
public class DefaultServiceFactory implements ServiceFactory {

    @Override
    public void firstMethod() {
        // bla bla bla
    }

    @Override
    public void secondMethod() {
        // bla bla bla
    }

    @Override
    public void thirdMethod() {
        // bla bla bla
    }
}

Setelah membuat implementasinya, register kelas implementasi tersebut pada Service di layer.xml , caranya tambahkan code dibawah ini, sesuaikan dengan lokasi kelas yang dibuat

    <folder name="Services">
        <folder name="Khannedy">
            <file name="khannedy-singleton-api-impl-DefaultServiceFactory.instance">
                <attr name="instanceOf" stringvalue="khannedy.singleton.api.ServiceFactory"/>
            </file>
        </folder>
    </folder>

Untuk memanggil kelas singleton tersebut, caranya hanya dengan menggunakan Lookup API seperti dibawah ini

ServiceFactory factory = Lookup.getDefault().lookup(ServiceFactory.class);

factory.firstMethod();
factory.secondMethod();
factory.thirdMethod();

mudah kan? :D

Satu pemikiran pada “Singleton dalam NetBeans Platform

Berikan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s