1. Pengenalan asas
1) Dalam Corak Strategi, keluarga algoritma (kumpulan strategi) ditakrifkan dan dikapsulkan secara berasingan supaya ia boleh digantikan antara satu sama lain Mod ini menjadikan perubahan algoritma bebas Untuk pelanggan yang menggunakan algoritma
2) Algoritma ini merangkumi beberapa prinsip reka bentuk Pertama, ia memisahkan kod yang berubah daripada kod tidak berubah kedua, ia menyasarkan pengaturcaraan antara muka dan bukannya kelas konkrit (takrifan (antara muka dasar); ketiga, gunakan kombinasi/penggabungan. lebih banyak dan kurang pewarisan (pelanggan menggunakan strategi melalui gabungan)
Contohnya: untuk penjimatan tenaga alam sekitar, tiga kaedah penjimatan tenaga dicadangkan: penjimatan tenaga papan jalur asas, penjimatan tenaga SPC, Penjimatan tenaga produk, kaedah penjimatan tenaga yang berbeza, prosedur pemprosesan khusus yang berbeza untuk peralatan persekitaran
2. Kaedah tradisional
(1) Gambar rajah kelas
(2) Pelaksanaan pengekodan
1) Tentukan kelas abstrak EsPolicy dan takrifkan kaedah esPolicyHandler
public abstract class EsPolicy { public void esPolicyHandler() { } }
2) BbEsPolicy mewarisi EsPolicy dan menimpa kaedah esPolicyHandler
public class BbEsPolicy extends EsPolicy { @Override public void esPolicyHandler() { System.out.println("===处理基带板节能策略==="); } }
PolicyHandler dalam Es.Policys kaedah
public class SpcEsPolicy extends EsPolicy { @Override public void esPolicyHandler() { System.out.println("===Spc节能策略处理==="); } }
4) ProdEsPolicy mewarisi EsPolicy dan mengatasi kaedah esPolicyHandler
public class ProdEsPolicy extends EsPolicy { @Override public void esPolicyHandler() { System.out.println("===产品节能策略处理==="); } }
5) Ujian
public class EsPolicyTest { public static void main(String[] args) { EsPolicy bbEsPolicy = new BbEsPolicy(); bbEsPolicy.esPolicyHandler(); SpcEsPolicy spcEsPolicy = new SpcEsPolicy(); spcEsPolicy.esPolicyHandler(); ProdEsPolicy prodPolicy = new ProdEsPolicy(); prodPolicy.esPolicyHandler(); } }
hasil pelaksanaan
===Processing base papan strategi penjimatan tenaga===Masalah : kaedah tradisional adalah untuk mencapai gelagat berbeza bagi subkelas yang berbeza melalui subkelas yang mewarisi kelas induk dan mengatasi kaedah kelas induk Perubahan setempat pada kelas, terutamanya perubahan tempatan kepada kelas super, akan menjejaskan bahagian lain dan mempunyai kesan limpahan===Memproses Spc strategi penjimatan tenaga===
===Memproses strategi penjimatan tenaga produk===
<.>3. Mengamalkan corak strategi
(1) Gambar rajah kelas
(2) Pelaksanaan pengekodan
1) Tentukan antara muka strategi Dan tentukan kaedah abstrak
public interface EsPolicyHandler { void esPolicyHandler(); }
2) BbEsPolicyHandler melaksanakan antara muka dasar dan melaksanakan kaedah esPolicyHandler
public class BbEsPolicyHandler implements EsPolicyHandler { @Override public void esPolicyHandler() { System.out.println("===基带板节能策略处理==="); } }
3) SpcEsPolicyHandler melaksanakan antara muka dasar dan melaksanakan kaedah esPolicyHandler
public class SpcEsPolicyHandler implements EsPolicyHandler { @Override public void esPolicyHandler() { System.out.println("===Spc节能策略处理==="); } }
5) Tentukan kelas abstrak EsPolicy dan suntik EsPolicyHandler sebagai atributnya
public class ProdEsPolicyHandler implements EsPolicyHandler { @Override public void esPolicyHandler() { System.out.println("===产品节能策略处理==="); } }
6) BbEsPolicy dalam antara muka ePolicyPolicy dan ePolicy segera Pembina
public abstract class EsPolicy { EsPolicyHandler esPolicyHandler; public void setEsPolicyHandler(EsPolicyHandler esPolicyHandler) { this.esPolicyHandler = esPolicyHandler; } public void esPolicyHandler() { if (null != esPolicyHandler) { esPolicyHandler.esPolicyHandler(); } } }
7) spcespolicy mewarisi espolicy dan instantiates atribut antaramer di dalam pembina
public class BbEsPolicy extends EsPolicy { public BbEsPolicy() { esPolicyHandler = new BbEsPolicyHandler(); } }
8) > 9) Ujian
public class SpcEsPolicy extends EsPolicy { public SpcEsPolicy() { esPolicyHandler = new SpcEsPolicyHandler(); } }
10) Keputusan pelaksanaan
===Memproses strategi penjimatan tenaga papan jalur asas======Spc pemprosesan strategi penjimatan tenaga= ==
===Pemprosesan strategi penjimatan tenaga produk===4. Nota dan butiran model strategi2) Idea teras corak strategi ialah: menggunakan lebih banyak kombinasi/agregasi dan kurang pewarisan menggunakan kombinasi kelas tingkah laku dan bukannya pewarisan tingkah laku, yang lebih fleksibel;
1) Kunci kepada model strategi ialah : menganalisis bahagian yang berubah dan bahagian projek yang tidak berubah Bahagian
3) merangkumi prinsip "Dekat dengan pengubahsuaian, terbuka kepada sambungan", pelanggan menambah tingkah laku tanpa mengubah kod asal Ia hanya perlu menambah strategi (atau tingkah laku), mengelakkan penggunaan daripada berbilang penyata pemindahan (jika...else if...else)
4) Menyediakan cara untuk menggantikan hubungan warisan: Corak strategi merangkum algoritma dalam kelas Strategi bebas supaya anda boleh mengubahnya secara bebas Konteksnya, menjadikannya mudah untuk bertukar, mudah difahami dan mudah untuk dilanjutkan
5) Perlu diingat bahawa setiap kali strategi ditambah, kelas akan ditambah Jika terdapat terlalu banyak strategi , ia akan membawa kepada sejumlah besar kelas
Atas ialah kandungan terperinci Analisis Contoh Corak Strategi Corak Reka Bentuk Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft