Direktori Membaca
Pengenalan asas
Berikan contoh
Ringkasan
Corak kilang yang ringkas menggunakan kaedah untuk menentukan tika kelas yang hendak dibuat, dan tika ini selalunya mempunyai antara muka yang sama Corak ini digunakan terutamanya apabila jenis yang digunakan tidak dapat ditentukan pada masa penyusunan, tetapi situasi diputuskan semasa pelaksanaan. tempoh. Secara ringkasnya, ia seperti mesin minuman di pantri syarikat Anda mahu kopi atau susu bergantung pada butang yang anda tekan.
Corak kilang yang ringkas juga sangat berguna apabila mencipta objek ajax.
Biasanya cara yang paling biasa untuk kita mencipta objek ialah menggunakan kata kunci baharu untuk memanggil pembina, yang akan membawa kepada kebergantungan antara objek. Corak kilang ialah corak reka bentuk yang membantu menghapuskan kebergantungan antara kelas dengan menggunakan kaedah untuk menentukan kelas mana yang hendak digunakan. Artikel ini memperkenalkan teori corak kilang ringkas secara terperinci dan menggambarkan aplikasi khusus corak kilang ringkas.
Pengenalan asas
Corak kilang yang ringkas adalah yang paling asas daripada corak kilang. Dengan mentakrifkan kelas kilang, kelas produk tertentu dibuat berdasarkan parameter.
Contoh
Mari kita ambil contoh untuk menggambarkan: Katakan kita membangunkan tapak web industri pelancongan yang menjual tiket penerbangan, hotel dan produk lain. Seorang pengguna bersedia untuk membeli tiket. Kita boleh mentakrifkan kelas berkaitan seperti berikut:
var productEnums = { flight: "flight", hotel: "hotel" }; function Flight() { console.log("This is Flight"); } function Hotel() { console.log("This is Hotel"); } function User() { this.shopCart = []; } User.prototype = { constructor: User, order: function (productType) { var product = null; switch (productType) { case productEnums.flight: product = new Flight(); case productEnums.hotel: product = new Hotel(); default: } this.shopCart.push(product); } } var user = new User(); user.order(productEnums.flight);
Kod ini mentakrifkan tiga kelas: Pengguna kelas pengguna, Penerbangan kelas tiket dan Hotel kelas hotel, di mana Pengguna mengandungi kaedah tempahan. Pengguna boleh terus memasukkan jenis produk semasa membuat tempahan. Tidak ada yang salah dengan kod ini pada pandangan pertama, tetapi keperluan dan perniagaan berubah pada bila-bila masa Jika perniagaan syarikat berkembang dan perkhidmatan visa ditambah, kami perlu mengubah suai kelas Pengguna untuk memastikan ia menyokong visa. Sudah tentu kita boleh melakukan ini, tetapi apa yang salah dengan mengubah suai kelas Pengguna secara langsung?
Perkara pertama yang ingin saya bincangkan ialah kelas Pengguna Kelas ini mewakili kelas pengguna, dan kelas pengguna pada asasnya tidak berkaitan dengan jenis perniagaan tertentu, maksudnya, perniagaan mungkin meningkat pada bila-bila masa. tetapi pengguna tidak mempunyai apa-apa kaitan dengan perniagaan. Kod adalah apa yang mencipta pesanan produk. Perniagaan visa baharu pada asasnya tidak berbeza dengan tiket penerbangan dan hotel sedia ada Jika anda perlu mengubah suai kelas Pengguna setiap kali anda menambah perniagaan, ini akan menjejaskan kestabilan dan kebolehselenggaraan kod yang lebih baik Kaedahnya mempunyai kelas penciptaan pesanan khusus untuk menguruskan perniagaan yang berbeza Kelas ini adalah kilang yang ringkas.
Kami mengubah suai kod seperti berikut:
var productFactory = (function () { var productFactories = { "flight": function () { return new Flight(); }, "hotel": function () { return new Hotel(); } }; return { createProduct: function (productType) { return productFactories[productType](); } } })(); User.prototype = { constructor: User, order: function (productType) { this.shopCart.push(productFactory.createProduct(productType)); } }
Terdapat dua pengubahsuaian utama pada kod ini:
(1) Menambah kilang produk untuk mengembalikan objek berbeza mengikut jenis produk yang berbeza
(2) Ubah suai kaedah pesanan kelas Pengguna untuk memanggil kaedah cipta produk dalam kelas kilang.
Faedah melakukan ini ialah:
(1) Jadikan kaedah pesanan Pengguna lebih fokus, hanya melakukan fungsi tempahan produk, dan mengekstrak serta mencipta pesanan produk ke dalam kelas kilang khusus, menjadikan kod lebih ringkas dan jelas
(2) Sebuah kilang khusus untuk menguruskan produk Adalah mudah untuk menambah produk baru tanpa mengubahsuai kelas Pengguna
Ringkasan
Ciri utama corak kilang yang mudah adalah untuk memisahkan penciptaan dan penggunaan objek Ia terutamanya terdiri daripada 3 bahagian:
1. Objek menggunakan kelas, iaitu pengguna yang dicipta oleh kilang dan tiada kaitan dengan jenis dan proses penciptaan objek
2. Kelas kilang mencipta objek berbeza berdasarkan parameter yang dihantar dan mengembalikannya ke objek menggunakan kelas Ia termasuk proses penciptaan objek yang berbeza, kelas mesti diubah suai 🎜>
Kelebihan model kilang ringkas
Senario yang berkenaan
Nota: Melainkan ia terpakai pada senario, corak kilang tidak boleh disalahgunakan, yang akan menyebabkan kerumitan kod.