Konsep OOP
Konsep inti pemrograman berorientasi objek dengan konteks dunia nyata, contoh kode dalam Swift, Kotlin, TypeScript, Python & Java, serta panduan praktis untuk setiap skenario.
Pilar
Empat fondasi desain berorientasi objekMenyatukan data dan method yang mengolah data tersebut dalam satu unit, serta membatasi akses langsung ke state internal objek.
Menyembunyikan detail implementasi yang rumit di balik interface yang sederhana dan jelas, hanya menampilkan yang dibutuhkan pemanggil.
Memungkinkan sebuah class mewarisi state dan perilaku dari class induknya, membentuk relasi "is-a".
Memungkinkan objek dengan tipe berbeda diperlakukan melalui interface yang sama, dengan setiap tipe punya perilakunya sendiri untuk pemanggilan yang sama.
Relasi
Bagaimana objek saling terhubung dan bergantungRelasi umum di mana satu objek memakai atau berinteraksi dengan objek lain tanpa kepemilikan; keduanya bisa ada secara mandiri.
Relasi "has-a" di mana container menyimpan referensi ke objek yang bisa ada tanpa container tersebut; relasi whole-part tanpa kepemilikan.
Relasi "has-a" yang kuat di mana siklus hidup bagian terikat pada keseluruhannya; saat container dihapus, bagian-bagiannya ikut terhapus.
Prinsip
Prinsip SOLID untuk kode OO yang mudah dirawatSebuah class seharusnya hanya punya satu alasan untuk berubah; lakukan satu hal dan lakukan dengan baik.
Entitas software seharusnya terbuka untuk perluasan tetapi tertutup untuk modifikasi; tambahkan perilaku baru tanpa mengubah kode yang sudah ada dan sudah dites.
Subtype harus bisa menggantikan base type-nya tanpa mengubah kebenaran program.
Client tidak boleh dipaksa bergantung pada interface atau method yang tidak dipakainya; lebih baik banyak interface kecil yang fokus daripada satu interface besar serbaguna.
Module tingkat tinggi tidak boleh bergantung langsung pada module tingkat rendah; keduanya harus bergantung pada abstraksi.