Contoh -contoh dalam artikel ini berbagi dengan Anda model strategi Java untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
1. Pola strategi adalah model yang relatif sederhana, juga disebut pola kebijakan.
Definisi adalah sebagai berikut:
Tentukan keluarga algoritma, merangkum masing -masing, dan membuatnya dipertukarkan.
(Tentukan satu set algoritma, merangkum setiap algoritma, dan membuatnya dipertukarkan.)
Diagram kelas umum dari pola kebijakan adalah sebagai berikut:
Tiga peran model kebijakan:
● Peran enkapsulasi konteks, juga dikenal sebagai peran konteks, memainkan peran enkapsulasi yang menghubungkan masa lalu dan masa depan, memblokir akses langsung modul tingkat tinggi ke kebijakan dan algoritma, dan merangkum kemungkinan perubahan.
● Strategi Strategi Abstrak Strategi Peran Strategi dan Algoritma Abstraksi Keluarga, biasanya antarmuka, mendefinisikan metode dan atribut yang harus dimiliki oleh setiap strategi atau algoritma,
● Strategi konkret Peran strategi spesifik mengimplementasikan operasi dalam kebijakan abstrak, dan kelas ini berisi algoritma spesifik.
Pola kebijakan adalah untuk melewati kebijakan spesifik dalam konstruktor peran yang dienkapsulasi dan kemudian menjalankan kebijakan ini.
Kode sumber umum dari mode kebijakan adalah sebagai berikut:
tes kelas publik3 {public static void main (string [] args) {// mendeklarasikan strategi strategi spesifik = concretestry1 baru (); // nyatakan konteks konteks konteks konteks = konteks baru (strategi); // jalankan metode yang dienkapsulasi konteks.doAnyThinig (); }} strategi antarmuka {// aturan aritmatika mode kebijakan void dosomething (); } class concretestry1 mengimplementasikan strategi {public void dosomething () {System.out.println ("Aturan aritmatika untuk strategi spesifik 1"); }} class concretestry2 mengimplementasikan strategi {public void dosomething () {System.out.println ("Aturan aritmatika untuk strategi spesifik 2"); }} Konteks kelas {// strategi abstrak strategi strategi pribadi; // Konstruktor menetapkan strategi spesifik konteks publik (strategi _strategy) {this.strategy = _strategy; } // Metode strategi yang dienkapsulasi public void doIythinig () {this.strategy.dosomething (); }}Keuntungan dari Model Strategi:
● Algoritma dapat diaktifkan dengan bebas
Ini ditentukan oleh model kebijakan itu sendiri. Selama strategi abstrak diimplementasikan, itu menjadi anggota keluarga kebijakan, merangkumnya melalui peran enkapsulasi, memastikan bahwa itu adalah strategi yang "dapat dialihkan" disediakan untuk dunia luar.
● Hindari menggunakan beberapa kondisi untuk menilai
Jika tidak ada model kebijakan, mari kita pikirkan seperti apa bentuknya? Keluarga strategi memiliki 5 algoritma strategi. Anda perlu menggunakan strategi A pada suatu waktu dan kemudian menggunakan strategi A pada suatu waktu.
Bagaimana cara merancang strategi B? Gunakan beberapa pernyataan bersyarat? Pernyataan multi-kondisi tidak mudah dipelihara, dan probabilitas kesalahan sangat ditingkatkan. Setelah menggunakan mode kebijakan, modul lain dapat memutuskan strategi mana yang akan diadopsi. Antarmuka akses yang disediakan oleh keluarga kebijakan ke luar adalah kelas enkapsulasi, yang menyederhanakan operasi dan menghindari penilaian pernyataan bersyarat.
● Skalabilitas yang baik
Ini bahkan tidak harus mengatakan apa yang harus dilakukan, karena terlalu jelas. Terlalu mudah untuk menambahkan strategi ke sistem yang ada. Terapkan cukup antarmuka dan tidak perlu memodifikasi yang lain. Ini mirip dengan plug-in yang dapat dibongkar berulang kali, yang sangat sesuai dengan prinsip OCP.
Kerugian pola kebijakan:
● Jumlah kelas kebijakan meningkat. Setiap strategi adalah kelas, dan kemungkinan penggunaan kembali sangat kecil, dan jumlah kelas meningkat.
● Semua kelas strategi perlu diekspos
Gunakan skenario untuk mode kebijakan:
● Beberapa kelas hanya memiliki skenario yang sedikit berbeda dalam algoritma atau perilaku.
● Skenario di mana algoritma perlu dialihkan dengan bebas.
● Skenario di mana aturan algoritma perlu diblokir.
2. Perpanjangan Mode Kebijakan - Pencacahan Kebijakan
Pencacahan kebijakan didefinisikan sebagai berikut:
● Ini adalah enum.
● Ini adalah penghitungan pola strategi terkonsentrasi.
Contohnya adalah sebagai berikut:
Pertanyaan: Masukkan 3 parameter dan lakukan operasi penambahan dan pengurangan. Dua parameter adalah tipe int, dan parameter yang tersisa adalah tipe string. Hanya dua simbol "+" dan "-" yang dapat dipilih. Jangan pertimbangkan verifikasi yang kompleks. Apa yang kami lakukan adalah tes kotak putih, dan apa yang kami masukkan adalah tipe int standar dan tipe string yang sesuai.
impor java.util.arrays; tes kelas publik3 {public static void main (string [] args) {// Dua parameter yang dimasukkan adalah angka int a = integer.parseint (args [0]); Simbol string = args [1]; // simbol int b = integer.parseint (args [2]); System.out.println ("Parameter input adalah:"+arrays.tostring (args)); System.out.println ("Hasil yang berjalan adalah:"+a+simbol+b+"="+calculator.add.exec (a, b)); }} enum calculator {// Tambahkan operasi add ("+") {public int exec (int a, int b) {return a+b; }}, // Subtraction Operation Sub (" -") {public int exec (int a, int b) {return a - b; }}; Nilai string = ""; // Tentukan Nilai Anggota Tipe Private Calculator (String _Value) {this.Value = _Value; } // Dapatkan nilai anggota enumerasi string publik getValue () {return this.value; } // mendeklarasikan fungsi abstrak abstrak publik int exec (int a, int b); }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.