Konsep pola pabrik sederhana
Ini untuk membangun kelas pabrik dan membuat contoh beberapa kelas yang menerapkan antarmuka yang sama. Inti dari pola pabrik yang sederhana adalah bahwa kelas pabrik secara dinamis menentukan contoh kelas produk mana (kelas produk ini mewarisi dari kelas induk atau antarmuka) harus dibuat berdasarkan parameter yang masuk.
Diagram UML mode pabrik sederhana
Kode pola pabrik sederhana
Ketika saya mempelajari model pabrik yang sederhana, saya menggunakan contoh yang terkait dengan manusia. Manusia dibagi menjadi pria dan wanita di dunia, dan pertama -tama mendefinisikan antarmuka abstrak untuk produk manusia.
/** * Ini adalah paket pola pabrik */paket com.roc.factory;/** * Antarmuka abstrak produk manusia * @author liaowp * */antarmuka publik manusia {public void mengatakan ();}Kemudian, baik pria maupun wanita memiliki cara untuk berbicara.
/** * Ini adalah paket pola pabrik */paket com.roc.factory;/** * man man * @author liaowp * */class public man mengimplementasikan metode manusia {/ * @see com.roc.factory.human#say () */@Override public void mengatakan () {out.printn (")/@Override public void mengatakan () {out.printn (" @Override public void () {out.printn ("") }} /** * Ini adalah paket pola pabrik */paket com.roc.factory;/** wanita * @Author liaowp * */kelas publik mengimplementasikan manusia {/ * katakan metode * @see com.roc.factory.println#say () */@Override public void mengatakan () {System.out.println ("womanride void; }}Akhirnya, tulis kelas pabrik untuk menciptakan pria dan wanita. Metode pertama dicapai dengan menggunakan penilaian logis.
Paket com.roc.factory;/** * Pabrik sederhana * @author liaowp * */kelas publik sampelFactory {public static human makhuman (string type) {if (type.equals ("man")) {manusia man = new man (); kembalinya manusia; } lain jika (type.equals ("womman")) {human woman = new woman (); wanita kembali; } else {System.out.println ("Can't Produce"); kembali nol; }}}Metode kedua adalah menggunakan radiasi java untuk mengimplementasikannya. Saya pikir jenis implementasi ini lebih baik.
Paket com.roc.factory;/** * Implementasi radiasi pabrik sederhana * @author liaowp * */kelas publik sampelFactory1 {public static manusia makehuman (kelas C) {manusia manusia = null; coba {human = (human) class.forname (c.getName ()). newInstance (); } catch (InstantiationException e) {// TODO Auto-Enchyated Catch Block System.out.println ("Kelas abstrak atau antarmuka tidak didukung"); e.printstacktrace (); } catch (IllegalAccessException e) {// TODO AUTO-ENTO-ENCEALATED Catch Block E.PrintStackTrace (); System.out.println ("Tidak ada izin yang cukup, yaitu objek pribadi tidak dapat diakses"); } catch (ClassNotFoundException e) {// TODO AUTO-ENTO-ENCEALATED Catch Block System.out.println ("ClassNot ada"); e.printstacktrace (); } mengembalikan manusia; }}Akhirnya, kode klien
Paket com.roc.factory;/** * Tes pabrik sederhana * @Author liaowp * */klien kelas publik {public static void main (string [] args) {// manusia manusia = sampelFactory.makehuman ("man"); // man.say (); // womman = sampelfactory.makehuman ("man." SampleFactory.Makehuman ("tttt"); Manusia manusia = sampelFactory1.makehuman (man.class); man.say (); Wanita manusia = sampelFactory1.makehuman (woman.class); woman.say (); }} Skenario Aplikasi Mode Pabrik Sederhana
Keuntungan: Kelas pabrik adalah kunci dari seluruh model. Ini berisi penilaian logis yang diperlukan dan menentukan objek kelas spesifik mana yang harus dibuat berdasarkan informasi yang diberikan oleh dunia luar. Dengan menggunakan kelas pabrik, dunia luar dapat menyingkirkan situasi memalukan untuk secara langsung membuat objek produk tertentu, dan hanya perlu bertanggung jawab atas objek "konsumsi". Tidak peduli bagaimana benda -benda ini dibuat dan diatur. Tanggung jawab dan hak masing -masing diklarifikasi, yang kondusif untuk optimalisasi seluruh arsitektur perangkat lunak.
Kerugian: Karena kelas pabrik memusatkan logika penciptaan semua contoh, melanggar prinsip alokasi tanggung jawab kohesif tinggi, semua logika penciptaan terkonsentrasi dalam satu kelas pabrik; Kelas yang dapat dibuat hanya dapat dipertimbangkan terlebih dahulu. Jika kelas baru perlu ditambahkan, kelas pabrik perlu diubah. Karena jumlah kategori produk tertentu dalam sistem terus meningkat, mungkin ada persyaratan untuk kelas pabrik untuk membuat contoh yang berbeda sesuai dengan kondisi yang berbeda. Penilaian kondisi dan penilaian jenis produk tertentu ini saling terkait, membuatnya sulit untuk menghindari penyebaran fungsi modul, yang sangat tidak menguntungkan untuk pemeliharaan dan ekspansi sistem;
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.