Overview

Model Inheritance di gunakan untuk ...

Jenis Model Inheritance Pada Efitrac

Model Inheritance pada efitrac ada 3 macam, dan ketiganya dapat di gunakan dalam pengembangan module-module efitrac, berikut adalah jenis-jenis dari model inheritance yang ada :

Standard Model Inheritance

Standard Model Inheritance adalah

Reference Model Inheritance

Reference Model Inheritance adalah

Partial Model Inheritance

Partial Model Inheritance di gunakan untuk meng-extend fungsional suatu model, Partial Model yang di buat biasanya ditaruh pada module yang berbeda sehingga penambahan dari partial class ini hanya akan berjalan bila module tersebut di install. Partial Model dapat digunakan untuk meng-extend model yang ada pada core walaupun developer tidak memiliki akses terhadap source code di core.

Contoh kasus penggunaan dari Partial Model Inheritance(TBD)

Persiapan agar model aware terhadap partial class

Secara default efitrac akan memanggil method dengan urutan paling bawah ke paling atas. tetapi untuk custom code maka developer harus menggunakan AbstractModel.invoke agar custom code yang ada nantinya dapat memanggil method yang di override secara Partial Model.
Contoh penggunaan invoke :

    public void my_method(long userId, int someId, Map context) {    
        //do something here   
        this.invoke("maybe_overrided_method", null, userId, someId, m, context);
        //do something more here
    }

dan agar method yang di override tahu harus memanggil parentnya, maka harus memanggil perintah <AbstracModel>.getParent() untuk mendapatkan refrensi model parent dari model ini, lalu memanggil invokeSelf(...) untuk memanggil method yang ada pada parent model tersebut.

    public void my_method(long userId, int someId, Map context) {    
        //do something here   

        //call parent method of my_method
        this.getParent().invokeSelf("my_method", null, userId, someId, m, context);

        //do something more here
    }

Summary

Setiap Inheritance memiliki kelebihannya masing-masing, pemilihan sesuai kebutuhan akan mempersingkat waktu development, berikut perbandingan singkat kegunaan dari masing-masing jenis :

Standard Model Reference Model Partial Model
Digunakan untuk membuat model baru dan ingin mengikuti daftar field dan method yang ada pada model lain Digunakan untuk membuat model baru dan ingin mengikuti list field yang ada di model yang di tuju Di gunakan jika ingin menambahkan fasilitas dari model yang ada tanpa mengubah model yang sudah ada