> Hi All,
> Mo ikutan diskusi nich.
> Konsep interface pertama kali diperkenalkan oleh Microsoft saat Microsoft
> memperkenalkan konsep COM.
> Tujuannya pada waktu itu adalah untuk memberikan sebuah layer of
> indirectness dari aplikasi thd implementasi dari sebuah COM object. Tujuan
> dari konsep COM sendiri adalah untuk memberikan reusability thus modularity
> pada level binary dan bukan pada level source code. Interface tsb pada
> gilirannya mendefinisikan behaviour yg akan diterima oleh penggunanya dengan
> mendefinisikan behaviour signature tanpa perlu mengetahui detil implementasi
> dari behaviour tsb.

Keliru, interface bukan diperkenalkan sama Microsoft.

>
> Sepanjang yg saya ketahui konsep itu kemudian diadopsi oleh bahasa2 lain
> maupun berbagai framework seperti java (Spring) dengan tujuan yg kurang
> lebih sama yang itu memberikan layer of indirectness pada aplikasi shg
> meningkatkan modularity dan meningkatkan reusability pada level binary.

Keliru, Spring tidak mengadopsi interface, interface adalah bagian
dari bahasa seperti bahasa yg support OOP even sebelum java.

> Inheritance + ploymorhism biasanya digunakan untuk mengambil manfaat dari
> sebagian behaviour pada parent classes (inheritance) dan  mengubah sebagian
> behaviour tsb (polymorhism) serta menciptakan behaviour baru dgn menggunakan
> behaviour yg diwariskan.
> Dari sudut pandang tsb, implementasi beberapa interface oleh sebuah class
> bukanlah sebuah inheritance apalagi multi-inheritance +polymorphism  karena
> tidak ada behaviour yg diwariskan, hanya signature dari behaviour tsb.
> Behaviour tsb harus didefiniskan dalam class itu sendiri.

Maksdunya yg mau dijelasin itu Encapsulation ya.

>
> Java memberikan fitur single inheritance bagi class unutk menghindari
> kompleksitas yang mungkin muncul akibat property dan behaviour yg diturunkan
> dan polymorphims yg mungkin terjadi, namun memberikan fitur multiple
> inheritance bagi interface karena pada dasarnya yg diwariskan hanya
> signature dari behaviournya dan bukan behaviour itu sendiri.

Tidak ada yang namanya "multiple inheritance bagi interface" ini
keliru. Sebab memang tidak ada yg di inherit. Yang lebih tepat adalah
"multiple implementation dari interface".

>
> Java juga memberikan fitur abstract class dan abstract function yg sampai
> titik tertentu penggunaannya hampir mirip dengan penggunaan interface. Jadi
> pakai yg mana ? Yg pasti adalah interface hanya mendefinisikan signature
> dari sebuah behaviour dan tidak dapat mendefinisikan behaviour itu sendiri
> maupun mendefinisikan property/member dari interface tsb. Sebuah class cukup
> memiliki 1 abstract function utk dapat disebut abstract class. Di luar itu,
> class tsb dapat mendefinisikan member, dan mendefinisikan behaviour fungsi2
> yg lain termasuk yg menggunakan abstract function tsb. Behaviour tsb dapat
> menjadi default behaviour dari class yg diturunkan dari abstract class tsb.

Ini keliru, interface dan abstract class itu beda. Yang satu adalah
untuk Encapsulation, satunya lagi untuk Template. Jadi keduanya tidak
ada hubungannya secara langsung.

PS : Mau tau gunanya interface ?? Coba aja pelajari apa artinya "Encapsulation".

Best Regards,

Kirim email ke