Dasar-Dasar Pola Builder
Bangun objek kompleks langkah demi langkah.
Dasar-Dasar Pola Builder adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.
Mengapa Menggunakan Pembangun?
Beberapa objek memerlukan banyak bidang, dan membuatnya dengan konstruktor besar yang penuh argumen berdasarkan posisi rentan terhadap kesalahan. Pola pembangun membuat objek kompleks selangkah demi selangkah, melalui satu pemanggilan bernama setiap kali.
Objek yang Kita Inginkan
Bayangkan sebuah permintaan HTTP dengan url, metode, headers, dan body. Meneruskan semua hal tersebut ke satu konstruktor sulit dibaca. Pembangun memungkinkan kita menetapkan setiap bagian melalui metode yang namanya jelas.
interface HttpRequest {
url: string;
method: string;
headers: Record<string, string>;
body?: string;
}Kelas Pembangun Dasar
Pembangun menyimpan keadaan parsial secara internal dan menyediakan metode penetap. Setiap penetap mengubah keadaan internal dan bertanggung jawab atas satu bidang.
class RequestBuilder {
private url = "";
private method = "GET";
private headers: Record<string, string> = {};
private body?: string;
}Perantaian Metode Mengembalikan this
Trik yang membuat pembangun mudah dibaca secara mengalir adalah mengembalikan this dari setiap penetap. Karena setiap metode mengembalikan pembangun yang sama, Anda dapat merangkai beberapa pemanggilan.
class RequestBuilder {
private url = "";
setUrl(u: string): this {
this.url = u;
return this;
}
}Menambahkan Langkah Lain
Setiap langkah konfigurasi mengikuti pola yang sama: simpan nilainya, lalu kembalikan this. Perhatikan bahwa tipe pengembalian this mempertahankan tipe pembangun konkret sepanjang rangkaian.
setMethod(m: string): this {
this.method = m;
return this;
}
addHeader(k: string, v: string): this {
this.headers[k] = v;
return this;
}Metode build()
Terakhir, metode build() menyusun keadaan yang telah terkumpul menjadi objek yang selesai. Inilah satu-satunya metode yang tidak mengembalikan pembangun.
build(): HttpRequest {
return {
url: this.url,
method: this.method,
headers: this.headers,
body: this.body,
};
}Menggunakan Pembangun
Sekarang proses pembuatan terbaca seperti sebuah kalimat. Setiap langkah memiliki nama, urutannya fleksibel, dan Anda tidak perlu mengelola argumen berdasarkan posisi.
const req = new RequestBuilder()
.setUrl("https://api.test")
.setMethod("POST")
.addHeader("Accept", "application/json")
.build();
console.log(req.method);Contoh Lengkap yang Dapat Dijalankan
Berikut versi mandiri yang dapat Anda jalankan. Pembangun mengumpulkan keadaan dan build() menghasilkan objek akhir yang tampak tidak dapat diubah.
interface Req { url: string; method: string }
class B {
private url = ""; private method = "GET";
setUrl(u: string): this { this.url = u; return this; }
setMethod(m: string): this { this.method = m; return this; }
build(): Req { return { url: this.url, method: this.method }; }
}
const r = new B().setUrl("/users").setMethod("POST").build();
console.log(r.url, r.method);Default Tersedia Secara Otomatis
Karena pembangun menginisialisasi bidang dengan default yang masuk akal, pemanggil hanya perlu mengganti hal-hal yang diperlukan. Langkah yang tidak ditetapkan cukup mempertahankan defaultnya.
const getReq = new B().setUrl("/health").build();
console.log(getReq.method); // GET (default)Keterbacaan dibandingkan Konstruktor
Bandingkan new Req("/x", "POST", {}, undefined) dengan pembangun berantai. Versi pembangun menjelaskan maksud pada setiap langkah dan menghindari placeholder undefined yang membingungkan.
Kapan Sebaiknya Menggunakannya
Gunakan pembangun ketika objek memiliki banyak bagian opsional, ketika pembuatannya berlangsung dalam beberapa langkah, atau ketika Anda menginginkan API yang mudah dibaca dan menjelaskan dirinya sendiri. Untuk dua atau tiga bidang, literal objek biasa lebih sederhana.
Pemeriksaan Singkat
Pemeriksaan singkat tentang pelajaran ini.
Rangkuman
Sebuah pembangun menyusun objek kompleks langkah demi langkah. Setiap penyetel menyimpan satu bidang dan mengembalikan this agar dapat dirangkai, sementara build() merakit objek akhir. Pembangun sangat berguna ketika objek memiliki banyak bagian opsional.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar Pola Builder” gratis?
Ya — teks lengkap “Dasar-Dasar Pola Builder” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dasar-Dasar Pola Builder”?
Bangun objek kompleks langkah demi langkah. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai TypeScript Academy?
Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Dasar-Dasar Pola Builder” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?
Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar Pola Builder
- Antarmuka Fluent dengan Jenis
- Memastikan Langkah Wajib
- Builder yang Tidak Dapat Diubah