Factory Method/Metode pabrik
Oleh
chmood
Mendefinisikan interface untuk membuat sebuah objek, tapi
biarkan subclass memutuskan mana kelas untuk instantiate. Pabrik Metode
memungkinkan sebuah Instansiasi kelas defer untuk subclass.
Mendefinisikan "virtual" konstruktor.
Operator baru dianggap berbahaya.
Masalah
Kerangka perlu standarisasi model arsitektur untuk berbagai
aplikasi, tetapi memungkinkan untuk aplikasi individu untuk menentukan objek
domain sendiri dan menyediakan Instansiasi mereka.
Pabrik Metode adalah untuk membuat objek sebagai Metode
Template adalah untuk menerapkan algoritma. Sebuah superclass menentukan semua
perilaku standar dan generik (menggunakan murni virtual "penampung"
untuk langkah-langkah penciptaan), dan kemudian delegasi rincian penciptaan
untuk subclass yang disediakan oleh klien.
Metode pabrik membuat desain yang lebih disesuaikan dan
hanya sedikit lebih rumit. Pola desain lainnya memerlukan kelas baru, sedangkan
Pabrik Metode hanya membutuhkan operasi baru.
Orang sering menggunakan Pabrik Metode sebagai cara standar
untuk membuat objek; tetapi tidak diperlukan jika: kelas yang dipakai tidak
pernah berubah, atau Instansiasi berlangsung dalam sebuah operasi yang subclass
dapat dengan mudah menimpa (seperti operasi inisialisasi).
Pabrik Metode ini mirip dengan Abstrak pabrik tapi tanpa
penekanan pada keluarga.
Metode pabrik secara rutin ditentukan oleh kerangka kerja
arsitektur, dan kemudian dilaksanakan oleh pengguna dari kerangka.
Struktur
Pelaksanaan Pabrik Metode dibahas dalam Gang of Four
(bawah) sebagian besar tumpang tindih dengan yang dari Abstrak Pabrik. Untuk
itu, presentasi dalam bab ini berfokus pada pendekatan yang telah menjadi
populer sejak.
Definisi semakin populer metode pabrik adalah: metode
statis dari kelas yang mengembalikan sebuah objek dari jenis kelas '. Tapi tidak
seperti konstruktor, objek yang sebenarnya itu kembali mungkin sebuah contoh
dari subclass. Tidak seperti konstruktor, objek yang ada mungkin digunakan
kembali, bukannya objek baru dibuat. Tidak seperti konstruktor, metode pabrik
dapat memiliki nama yang berbeda dan lebih deskriptif (misalnya
Color.make_RGB_color (mengapung merah, hijau mengambang, mengapung biru) dan
Color.make_HSB_color (float hue, saturation float, kecerahan float)
Klien benar-benar dipisahkan dari rincian pelaksanaan kelas turunan. Penciptaan polimorfik sekarang mungkin.
Contoh
Pabrik Metode mendefinisikan sebuah antarmuka untuk
menciptakan objek, tetapi memungkinkan subclass memutuskan mana kelas untuk
instantiate. Menekan injeksi molding menunjukkan pola ini. Produsen mainan
proses molding plastik bubuk plastik, dan menyuntikkan plastik ke dalam cetakan
dari bentuk yang diinginkan. Kelas mainan (mobil, action figure, dll)
ditentukan oleh cetakan,
Jika Anda memiliki hirarki warisan yang latihan
polimorfisme, pertimbangkan untuk menambahkan kemampuan penciptaan polimorfik
dengan mendefinisikan metode pabrik statis di kelas dasar.
Desain argumen untuk metode pabrik. Apa kualitas atau
karakteristik yang perlu dan cukup untuk mengidentifikasi kelas turunan yang
benar untuk instantiate?
Pertimbangkan merancang internal "objek pool"
yang akan memungkinkan objek untuk digunakan kembali bukannya dibuat dari awal.
Pertimbangkan untuk membuat semua konstruktor pribadi atau
dilindungi.
Aturan praktis
Kelas Pabrik abstrak seringkali dilaksanakan dengan Metode
Pabrik, tetapi mereka dapat diimplementasikan menggunakan Prototype.
Metode pabrik biasanya disebut dalam Metode Template.
Pabrik Metode: penciptaan melalui warisan. Prototype:
penciptaan melalui delegasi.
Seringkali, desain mulai menggunakan Metode Pabrik (kurang
rumit, lebih disesuaikan, subclass berkembang biak) dan berkembang ke arah
Abstrak Pabrik, Prototype, atau Builder (lebih fleksibel, lebih kompleks)
sebagai desainer menemukan di mana lebih fleksibel diperlukan.
Prototipe tidak memerlukan subclassing, tetapi tidak
membutuhkan operasi Initialize. Metode pabrik membutuhkan subclassing, tapi
tidak memerlukan inisialisasi.
Keuntungan dari Pabrik Metode adalah bahwa hal itu dapat
kembali contoh yang sama beberapa kali, atau dapat kembali subclass daripada
sebuah objek dari jenis yang tepat.
Beberapa pendukung Pabrik Metode merekomendasikan bahwa
sebagai masalah desain bahasa (atau gagal itu, sebagai masalah gaya)
benar-benar semua konstruktor harus pribadi atau dilindungi. Ini bisnis tidak
ada orang lain apakah kelas memproduksi objek baru atau mendaur ulang yang
lama.
Operator baru dianggap berbahaya. Ada perbedaan antara
meminta obyek dan menciptakan satu. Operator baru selalu menciptakan objek, dan
gagal untuk merangkum objek penciptaan. Metode Pabrik memaksa enkapsulasi itu,
dan memungkinkan sebuah objek yang akan diminta tanpa kopling inextricable ke
tindakan penciptaan
Category
Komentar