Abstrak Pola Pabrik Desain

chmood
Abstrak Pola Pabrik Desain

Abstrak Pola Pabrik Desain Maksud Menyediakan sebuah antarmuka untuk menciptakan keluarga
obyek terkait atau tergantung tanpa menentukan kelas beton mereka.
Sebuah hirarki yang merangkum: banyak kemungkinan "platform", dan pembangunan suite "produk".

Operator baru dianggap berbahaya.

Masalah

Jika aplikasi adalah untuk menjadi portabel, perlu untuk merangkum dependensi platform yang. Ini "platform" mungkin termasuk: sistem windowing, sistem operasi, database, dll Terlalu sering, encapsulatation ini tidak direkayasa terlebih dahulu, dan banyak laporan kasus ifdef dengan pilihan untuk semua platform saat ini didukung mulai berkembang biak seperti kelinci seluruh kode .

Diskusi
Memberikan tingkat tipuan yang abstrak penciptaan keluarga obyek terkait atau tergantung tanpa langsung menentukan kelas beton mereka. "Pabrik" objek memiliki tanggung jawab untuk menyediakan jasa pembuatan untuk seluruh keluarga Platform. Klien tidak pernah membuat objek platform yang langsung, mereka meminta pabrik untuk melakukan itu untuk mereka.

Mekanisme ini membuat bertukar keluarga produk mudah karena kelas tertentu dari objek pabrik hanya muncul sekali dalam aplikasi - di mana ia dipakai. Aplikasi grosir dapat menggantikan seluruh keluarga produk hanya dengan instantiating contoh konkret yang berbeda dari pabrik abstrak.

Karena layanan yang disediakan oleh objek pabrik begitu luas, itu rutin dilaksanakan sebagai Singleton.

Struktur

Abstrak Pabrik mendefinisikan Pabrik Metode per produk. Setiap Pabrik Metode merangkum operator baru dan beton, platform-spesifik, kelas produk. Setiap "platform" ini kemudian dimodelkan dengan Pabrik kelas turunan.

Skema Abstrak Pabrik

Contoh

Tujuan dari Abstrak Pabrik adalah untuk menyediakan sebuah antarmuka untuk menciptakan keluarga obyek terkait, tanpa menentukan kelas beton. Pola ini ditemukan dalam peralatan stamping lembaran logam yang digunakan dalam pembuatan mobil Jepang. Peralatan stamping adalah Pabrik Abstrak yang menciptakan auto bagian tubuh. Mesin yang sama digunakan untuk membasmi pintu kanan tangan, pintu kiri, fender kanan depan, fender kiri depan, kerudung, dll untuk model yang berbeda dari mobil. Melalui penggunaan rol untuk mengubah dies stamping, kelas beton yang dihasilkan oleh mesin dapat diubah dalam waktu tiga menit.

Contoh Abstrak Pabrik

Periksa daftar

Memutuskan apakah "platform kemerdekaan" dan penciptaan layanan adalah sumber arus nyeri.

Memetakan matriks "platform" versus "produk".

Mendefinisikan antarmuka pabrik yang terdiri dari metode pabrik per produk.

Mendefinisikan sebuah pabrik kelas turunan untuk setiap platform yang merangkum semua referensi ke operator baru.

Klien harus pensiun semua referensi baru, dan menggunakan metode pabrik untuk membuat objek produk.

Aturan praktis

Terkadang pola penciptaan adalah pesaing: ada kasus-kasus ketika salah Prototipe atau Abstrak Pabrik dapat digunakan menguntungkan. Di lain waktu mereka saling melengkapi: Abstrak Pabrik mungkin menyimpan satu set Prototip dari mana untuk mengkloning dan kembali objek produk, Builder dapat menggunakan salah satu pola lain untuk menerapkan komponen yang bisa dibangun. Abstrak Pabrik, Builder, dan Prototype dapat menggunakan Singleton dalam pelaksanaannya.

Abstrak Pabrik, Builder, dan Prototype menentukan objek pabrik yang bertanggung jawab untuk mengetahui dan menciptakan kelas obyek produk, dan membuatnya menjadi parameter dari sistem. Pabrik abstrak memiliki objek pabrik yang memproduksi benda-benda dari beberapa kelas. Builder memiliki objek bangunan pabrik produk kompleks secara bertahap menggunakan protokol Sejalan kompleks. Prototipe memiliki objek pabrik (alias prototipe) membangun produk dengan menyalin objek prototipe.

Kelas Pabrik abstrak seringkali dilaksanakan dengan Metode Pabrik, tetapi mereka juga dapat diimplementasikan dengan menggunakan Prototype.

Abstrak Pabrik dapat digunakan sebagai alternatif untuk fasad menyembunyikan kelas-platform tertentu.

Builder berfokus pada membangun objek langkah demi langkah yang kompleks. Pabrik abstrak menekankan keluarga benda produk (baik sederhana atau kompleks). Builder mengembalikan produk sebagai langkah terakhir, tapi sejauh Abstrak Pabrik yang bersangkutan, produk akan kembali segera.

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.

Komentar