Latest web development tutorials

Modus Template

Dalam mode template (Template Pola), dan kelas abstrak yang mendefinisikan bagaimana melaksanakannya mengungkapkan suatu metode / template. subclass perlu mengganti metode dapat mencapai, tetapi disebut kelas abstrak akan ditentukan. Jenis pola desain milik pola perilaku.

pengenalan

Maksud: Tentukan algoritma operasi kerangka, sementara menunda beberapa langkah untuk subclass.Metode Template memungkinkan subclass dari suatu algoritma tanpa mengubah struktur langkah tertentu dari algoritma dapat didefinisikan ulang.

Solusi utama: Beberapa metode yang umum, tetapi di setiap sub-kelas menulis ulang pendekatan ini.

Kapan menggunakan: Ada beberapa metode umum.

Bagaimana mengatasi: ini algoritma umum disarikan.

Kode kunci: abstrak kelas mengimplementasikan langkah-langkah lain dalam pelaksanaan sub-kelas.

contoh aplikasi: 1, ketika di sebuah rumah yang dibangun, yayasan, kabel, pipa air adalah sama, hanya di bagian akhir dari bangunan memiliki lemari plus plus pagar perbedaan.2, Perjalanan ke Barat menetapkan Buddha yang baik dalam 81 sulit, ini adalah kerangka logis tingkat atas. 3, Spirng mendukung Hibernate, beberapa telah memberikan cara yang baik untuk merangkum, seperti transaksi terbuka, memperoleh Sesi, Tutup Sesi dan programmer lain yang belum diulang norma menulis kode yang baik, lemparan langsung entitas dapat disimpan.

Keuntungan: 1, bagian dari paket yang sama, diperpanjang bagian variabel.2, ekstrak kode umum, mudah untuk mempertahankan. 3, perilaku dikendalikan oleh kelas induk, implementasi subclass.

Kekurangan: setiap implementasi yang berbeda membutuhkan subclass untuk mencapai, mengakibatkan peningkatan jumlah kelas, membuat sistem yang lebih besar.

skenario penggunaan: 1, beberapa metode yang umum sub-kelas, dan logika yang sama.2, penting, metode yang kompleks dapat dianggap sebagai metode Template.

Catatan: Untuk mencegah tindakan jahat, ditambah dengan metode template yang umum adalah kata kunci final.

realisasi

Kami akan membuat kelas abstrak tindakanpermainankustom, dimana metode template yang diatur ke akhir, sehingga tidak akan ditimpa.KriketdanGameFootball merupakan perluasan dari kelas entitas, yang menimpa kelas abstrak.

TemplatePatternDemo,kami menunjukkan penggunaanGameclass untuk menunjukkan penggunaan pola Template.

Pola Template diagram UML

Langkah 1

Buat kelas abstrak, metode template yang diatur ke final.

Game.java

Permainan kelas abstrak publik {
   abstract void initialize ();
   abstract void startPlay ();
   abstract void endplay ();

   // Template public final void bermain () {

      // Inisialisasi initialize permainan ();

      // Mulai permainan startPlay ();

      // End permainan endplay ();
   }
}

Langkah 2

Buat memperluas kelas entitas di atas kelas.

Cricket.java

public class Cricket meluas Permainan {

   @ Override
   kekosongan endplay () {
      System.out.println ( "Cricket permainan Selesai!");
   }

   @ Override
   kekosongan initialize () {
      System.out.println ( "! Cricket permainan diinisialisasi Mulai bermain.");
   }

   @ Override
   kekosongan startPlay () {
      System.out.println ( "Cricket permainan Dimulai Nikmati permainan.!");
   }
}

Football.java

Football kelas publik meluas Permainan {

   @ Override
   kekosongan endplay () {
      System.out.println ( "Football Selesai!");
   }

   @ Override
   kekosongan initialize () {
      System.out.println ( "! Football diinisialisasi Mulai bermain.");
   }

   @ Override
   kekosongan startPlay () {
      System.out.println ( "Football Dimulai Nikmati permainan.!");
   }
}

Langkah 3

Permainanmenggunakan metode template yang bermain () untuk menunjukkan permainan didefinisikan.

TemplatePatternDemo.java

public class TemplatePatternDemo {
   public static void main (String [] args) {

      Game permainan = baru Cricket ();
      game.play ();
      System.out.println ();
      Game = new Football ();
      game.play ();		
   }
}

Langkah 4

Verifikasi output.

Cricket permainan diinisialisasi! Mulai bermain.
Cricket permainan Dimulai. Nikmati permainan!
Cricket permainan Selesai!

Football Pertandingan diawali! Mulai bermain.
Football Pertandingan Dimulai. Nikmati permainan!
Football Pertandingan Selesai!