Deskripsi Pola Pabrik Abstrak
1. Masalah dengan Model Metode Pabrik: Dalam model metode pabrik, membuat kelas membutuhkan melewati kelas pabrik. Jika Anda ingin memperpanjang program, Anda harus memodifikasi kelas pabrik. Ini melanggar prinsip penutupan, dibuka untuk ekstensi dan penutupan untuk modifikasi; Ada masalah tertentu dengan desain.
2. Cara menyelesaikannya: Anda perlu menggunakan model pabrik abstrak, yang berarti membuat kelas pabrik untuk kelas fungsional secara terpisah, sehingga Anda tidak perlu memodifikasi kode sebelumnya dan memperluas fungsinya.
3. Model pabrik sebenarnya membuat panggilan ke metode pabrik terpadu untuk mengimplementasikan kelas implementasi yang mengimplementasikan antarmuka yang sama, tetapi JavaScript tidak memiliki nomor antarmuka, sehingga lapisan implementasi ini dihapus, tetapi anggota dan metode kelas fungsi bit harus sama;
Contoh Kode Sumber Pabrik Abstrak
1. Kelas Pengirim Email :
Salinan kode adalah sebagai berikut:
function mailsender () {
this.to = '';
this.title = '';
this.content = '';
}
Mailsender.prototype.send = function () {
// Kirim Tubuh
}
2. Kelas Pengirim SMS:
Salinan kode adalah sebagai berikut:
fungsi smssender () {
this.to = '';
this.title = '';
this.content = '';
}
Smssender.prototype.send = function () {
// Kirim Tubuh
}
3. Ini awalnya kelas antarmuka pabrik, tetapi dihapus di sini; langsung membuat berbagai pabrik kelas fungsional ;
1>. Kategori Pabrik Mail:
Salinan kode adalah sebagai berikut:
function mailFactory () {
}
Mailfactory.prototype.produce = function () {
kembalikan MailSender baru ();
}
2>. Kategori pabrik SMS:
Salinan kode adalah sebagai berikut:
fungsi smsfactory () {
}
Smsfactory.prototype.produce = function () {
mengembalikan smssender baru ();
}
4. Cara menggunakan:
Salinan kode adalah sebagai berikut:
var factory = new MailFactory ();
var pengirim = factory.produce ();
sender.to = 'toname#mail.com';
sender.title = 'Pola pabrik abstrak';
sender.content = 'kirim konten';
sender.send ();
Instruksi lainnya
Mode pabrik yang digunakan dalam bahasa yang berorientasi objek seperti Java dan .NET C# menggunakan antarmuka. Antarmuka adalah metode yang tersedia untuk mengekspos ke berbagai pengguna eksternal, menjelaskan metode apa untuk menerapkan fungsi ini dan bagaimana pengguna harus menggunakan antarmuka ini. Objek dinyatakan dalam bentuk kelas, mewakili beberapa abstraksi di dunia nyata. Mungkin adegan itu akan memiliki banyak aplikasi serupa, seperti pengiriman email, pengiriman SMS, dan berbagai metode promosi di mal, serta berbagai burung dan binatang buas di dunia hewan.
Jika kami tidak memberi pengguna penggunaan pengguna dalam bentuk antarmuka, kami pasti akan memberi pengguna objek kelas fungsional nyata, dan pengguna dapat memodifikasi dan memperluas objek kelas sesuka hati, yang tidak diizinkan.
Mode metode pabrik dan mode abstrak pabrik dapat menyelesaikan masalah seperti itu dengan baik. Pengguna hanya dapat menggunakan antarmuka untuk menghubungi kelas pabrik untuk melakukan operasi yang ditentukan; Mode pabrik abstrak lebih lanjut menggunakan fungsi ekstensi, dan kelas fungsional dan kelas pabrik mengimplementasikan ekstensi tingkat kelas masing-masing pada antarmuka yang sesuai, dan tidak akan melibatkan memodifikasi kelas atau metode lain;