Banyak Builder Pattern
contoh membuat Builder
kelas batin dari objek yang dibangunnya.
Ini masuk akal karena ini menunjukkan apa yang Builder
membangun. Namun, dalam bahasa yang diketik secara statis kita tahu apa yang Builder
membangun.
Di sisi lain jika itu Builder
adalah kelas batin, Anda harus tahu kelas apa yang Builder
dibangun tanpa melihat ke dalam Builder
.
Juga, menjadikan pembangun sebagai kelas dalam mengurangi jumlah impor karena dapat dirujuk oleh kelas luar - jika Anda peduli tentang itu.
Dan kemudian ada contoh-contoh praktis di mana paket itu Builder
berada dalam paket yang sama, tetapi bukan kelas dalam, seperti StringBuilder
. Anda tahu bahwa Builder
harus membangun String
karena dinamai demikian.
Yang sedang berkata, satu-satunya alasan bagus yang dapat saya pikirkan untuk membuat Builder
kelas dalam adalah bahwa Anda tahu apa kelas Builder
itu tanpa mengetahui namanya atau mengandalkan konvensi penamaan. Sebagai contoh, jika StringBuilder
kelas dalam String
saya mungkin akan tahu itu ada lebih cepat daripada yang saya lakukan (spekulatif).
Apakah ada alasan lain untuk menjadikan Builder
kelas batin atau hanya karena preferensi dan ritual?
sumber
Tidak ada "harus" dalam kasus ini. Mendefinisikan pembangun di dalam kelas lain atau memisahkannya adalah ortogonal dengan pola Builder. Banyak contoh melakukan ini karena kemudahan penyajian kode dalam satu file yang konsisten (juga untuk mengakses anggota pribadi tetapi itu tergantung pada konteksnya juga). Jangan ragu untuk melakukan sebaliknya
sumber