Interface mendefinisikan kontrak perilaku tanpa mengikat implementasi. Kode yang bergantung pada interface menjadi fleksibel: implementasi bisa diganti tanpa mengubah pemanggil. Section ini membahas interface dari dasar hingga pola desain yang menjadikannya alat abstraction paling sering dipakai di C#.

# Mendefinisikan Interface

Pelajari aturan mendefinisikan interface di C#: member yang boleh ditulis, akses implisitnya, dan status interface sebagai sebuah tipe.

Buka →
# Mengimplementasikan Interface

Pelajari cara class menepati kontrak interface: mengisi seluruh member, memakai implementasi lewat tipe interface, dan galat bila ada member yang tertinggal.

Buka →
# Interface Segregation

Pelajari prinsip interface segregation: memecah kontrak yang menggabungkan terlalu banyak kemampuan agar class hanya mengisi member yang benar-benar dipakai.

Buka →
# Multiple Interface Implementation

Pelajari cara satu class mengimplementasikan beberapa interface sekaligus dan mengekspos object yang sama melalui beberapa sudut pandang kontrak.

Buka →
# Interface Inheritance

Pelajari cara interface mewarisi interface lain untuk menambah kemampuan baru tanpa mengubah kontrak lama yang sudah dipakai banyak class.

Buka →
# Explicit Implementation

Pelajari cara menyelesaikan benturan member dengan nama sama dari dua interface menggunakan explicit implementation.

Buka →
# Default Interface Methods

Pelajari cara memberi badan bawaan pada member interface sehingga class lama tidak wajib mengisi method yang baru ditambahkan.

Buka →
# Abstract Class vs Interface

Pelajari perbedaan pokok abstract class dan interface beserta cara memadukan keduanya dalam satu hierarki metode pembayaran.

Buka →
# Programming to Interface

Pelajari prinsip programming to interface: mengganti ketergantungan pada class konkret dengan ketergantungan pada kontrak agar kode mudah diperluas.

Buka →
# Abstraction dalam Desain

Rangkum seluruh materi section ini menjadi keputusan desain nyata: menyusun kontrak yang tepat dan membangun alur checkout yang fleksibel.

Buka →