DEV Community

Cover image for Membuat Objek Bersarang Dengan Memanfaatkan Composite Class
Aris アリス
Aris アリス

Posted on

Membuat Objek Bersarang Dengan Memanfaatkan Composite Class

Hai teman-teman 👋

Kali ini saya akan membagikan tentang cara membuat objek bersarang dengan memanfaatkan composite class. Sebagai contoh saya akan membuat class Category seperti berikut:

class Category {
    constructor(name) {
        this.name = name;
    }
}
Enter fullscreen mode Exit fullscreen mode

Pada contoh di atas, objek yang dihasilkan dari instansiasi class Category tidak mampu untuk menampung sub kategori. Oleh karena itu, kita perlu untuk membuat composite classnya yang diturunkan dari class Category seperti berikut:

class CompositeCategory extends Category {
    constructor(name, categories) {
        super(name);
        this.categories = categories;
    }

    getCategories() {
        return this.categories;
    }
}
Enter fullscreen mode Exit fullscreen mode

Pada class CompositeCategory menerima dua inputan. Yang pertama nama kategorinya dan yang kedua array untuk menampung sub kategorinya. Berikut contoh penggunaannya:

const categories = [
    new Category('Buah dan Sayur'),
    new CompositeCategory('Fashion', [
        new Category('Fashion Pria'),
        new Category('Fashion Wanita')
    ]),
    new CompositeCategory('Elektronik', [
        new Category('Sound System'),
        new CompositeCategory('Handphone', [
            new Category('Android'),
            new Category('iOS')
        ])
    ])
];
Enter fullscreen mode Exit fullscreen mode

Pada contoh di atas, saya membuat variabel categories yang menampung beberapa kategori. Setiap kategori di dalamnya ada yang memiliki sub kategori ada yang tidak. Kedalaman sub kategori juga berbeda-beda sesuai preferensi.

Demikian yang dapat saya bagikan, apabila ada yang perlu dikoreksi silahkan share di kolom komentar. 😁

Top comments (0)