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

About these ads

Satu pemikiran pada “Singleton dalam NetBeans Platform

Berikan Balasan

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

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s