Abstraksi dan Desain Program
Diperkenalkan| English | Makna |
|---|---|
| abstraction/əbˈstrækʃn/ | abstraksi |
| procedural abstraction/prəˈsiːdʒərəl əbˈstrækʃn/ | abstraksi prosedural |
| method decomposition/ˈmeθəd ˌdiːkɒmpəˈzɪʃn/ | dekomposisi metode |
Menyembunyikan detail
- Abstraksi berarti menyembunyikan detail untuk fokus pada ide utama.
- Anda mengemudi mobil dengan setir dan pedal — bukan dengan mengetahui komponen mesin di dalamnya.
- Dalam kode, abstraksi memungkinkan Anda menggunakan sesuatu berdasarkan apa yang dilakukan, bukan bagaimana caranya.
- Ini adalah ide paling penting untuk mengelola program besar.
Abstraksi prosedural
- Abstraksi prosedural membungkus perilaku ke dalam metode yang Anda panggil dengan nama.
- Setelah ditulis,
average(scores)digunakan berdasarkan hasilnya — kode di dalamnya disembunyikan. - Nama metode dan parameternya (antarmukanya) adalah semua yang dibutuhkan Caller.
- Ini persis seperti cara Anda menggunakan metode perpustakaan seperti
Math.sqrt.
Dekomposisi metode
- Pecahkan masalah besar menjadi perilaku kecil, masing-masing menjadi metodenya sendiri — dekomposisi metode.
- "Proses pesanan" →
checkStock(),chargeCard(),ship(). - Metode kecil dengan nama jelas lebih mudah ditulis, diuji, dan digunakan kembali.
- Metode utama kemudian dapat dibaca seperti ringkasan tingkat tinggi.
Merencanakan kelas
- Untuk merancang sebuah kelas, tentukan data apa yang dimilikinya dan perilaku apa yang ditawarkannya.
- Sebuah
Studentmemiliki data (nama, nilai) dan perilaku (addScore,average). - Desain yang baik mengelompokkan data dan perilaku yang terkait bersama.
- Perencanaan awal membuat program lebih mudah dibangun, dibaca, dan digunakan kembali.
Interface or implementation?
Abstraksi menyembunyikan cara di balik apa yang sederhana. Urutkan setiap item.
Abstraksi tentang antarmuka, bukan implementasi. Caller dari average(scores) hanya membutuhkan namanya, input, dan hasil—tidak perlu knowledge loop di dalamnya. Rancang setiap metode untuk melakukan satu tugas jelas (dekomposisi metode); metode yang melakukan lima hal tak related sulit dinamai, diuji, dan digunakan kembali. Rencanakan kelas sebagai data + perilaku sebelum menulis kode.
Merancang kelas Student:
- Data: nama siswa dan daftar nilai.
- Perilaku:
addScore(s),average(),highest(). - Caller menggunakan
student.average()untuk mendapatkan hasilnya — perhitungan disembunyikan di dalamnya.
Abstraksi menyembunyikan detail untuk fokus pada ide utama; abstraksi prosedural memungkinkan Anda menggunakan metode berdasarkan apa yang dilakukan, bukan bagaimana caranya. Dekomposisi metode memecah masalah besar menjadi perilaku kecil dengan nama jelas. Rancang sebuah kelas dengan menentukan data dan perilaku-nya—desain yang baik membuat kode lebih mudah dibangun, dibaca, dan digunakan kembali.
Abstraction is best described as...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Abstraksi menyembunyikan bagaimana sesuatu bekerja agar Anda dapat menggunakan apa yang dilakukannya.
Procedural abstraction lets you use a method by...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Anda memanggilnya dengan nama dan input, bukan dengan bagian dalamnya.
Memecah masalah besar menjadi perilaku bernama yang lebih kecil (metode) disebut metode ___ (satu kata).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Method decomposition splits work into focused methods.
When designing a class, which should you decide?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Desain adalah tentang data + perilaku, dikelompokkan secara masuk akal — bukan alamat.
Desain program yang baik membuat program lebih mudah dibangun, dibaca, dan digunakan kembali.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
That's the payoff of abstraction and decomposition.