Banyak Builder Patterncontoh membuat Builderkelas batin dari objek yang dibangunnya.
Ini masuk akal karena ini menunjukkan apa yang Buildermembangun. Namun, dalam bahasa yang diketik secara statis kita tahu apa yang Buildermembangun.
Di sisi lain jika itu Builderadalah kelas batin, Anda harus tahu kelas apa yang Builderdibangun 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 Builderberada dalam paket yang sama, tetapi bukan kelas dalam, seperti StringBuilder. Anda tahu bahwa Builder harus membangun Stringkarena dinamai demikian.
Yang sedang berkata, satu-satunya alasan bagus yang dapat saya pikirkan untuk membuat Builderkelas dalam adalah bahwa Anda tahu apa kelas Builderitu tanpa mengetahui namanya atau mengandalkan konvensi penamaan. Sebagai contoh, jika StringBuilderkelas dalam Stringsaya mungkin akan tahu itu ada lebih cepat daripada yang saya lakukan (spekulatif).
Apakah ada alasan lain untuk menjadikan Builderkelas batin atau hanya karena preferensi dan ritual?