Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++?

Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++?

WBOY
WBOYasal
2024-06-06 16:16:17678semak imbas

Langkah-langkah untuk melaksanakan corak strategi dalam C++ adalah seperti berikut: tentukan antara muka strategi dan isytiharkan kaedah yang perlu dilaksanakan. Cipta kelas strategi khusus, laksanakan antara muka masing-masing dan sediakan algoritma yang berbeza. Gunakan kelas konteks untuk memegang rujukan kepada kelas strategi konkrit dan melaksanakan operasi melaluinya.

Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++?

Cara melaksanakan Corak Reka Bentuk Strategi dalam C++

Pengenalan

Corak reka bentuk tingkah laku yang membolehkan anda menukar algoritma atau tingkah laku pada masa jalankan tanpa mengubah suai Ini memberi anda fleksibiliti untuk menukar algoritma tanpa mengubah rujukan kepada algoritma tersebut.

Melaksanakan Corak Strategi

Melaksanakan Corak Strategi dalam C++ memerlukan beberapa langkah:

  1. Tentukan antara muka Strategi asas: Ini ialah kelas asas untuk semua strategi, yang mengisytiharkan kaedah yang diperlukan.
  2. Buat kelas strategi konkrit: Kelas ini melaksanakan antara muka strategi asas dan menyediakan algoritma atau gelagat yang berbeza.
  3. Menggunakan kelas konteks: Ia memegang rujukan kepada kelas strategi konkrit dan menggunakannya untuk melaksanakan tindakan tertentu.

Contoh Praktikal

Andaikan anda mempunyai algoritma pengisihan yang memerlukan algoritma perbandingan yang berbeza. Anda boleh mencapai ini dengan mudah menggunakan Corak Strategi.

Antara muka strategi asas:

class Comparator {
public:
    virtual bool compare(int a, int b) = 0;
};

Kelas strategi konkrit:

class AscendingComparator : public Comparator {
public:
    bool compare(int a, int b) override { return a < b; }
};

class DescendingComparator : public Comparator {
public:
    bool compare(int a, int b) override { return a > b; }
};

Kelas konteks:

class Sorter {
public:
    Sorter(Comparator* comparator) : comparator(comparator) {}

    void sort(int* arr, int size) {
        for (int i = 0; i < size - 1; i++) {
            for (int j = i + 1; j < size; j++) {
                if (comparator->compare(arr[i], arr[j])) {
                    std::swap(arr[i], arr[j]);
                }
            }
        }
    }

private:
    Comparator* comparator;
};

Penggunaan:

log ini

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn