Rumah >pembangunan bahagian belakang >C++ >Apakah prinsip reka bentuk kelas C++?

Apakah prinsip reka bentuk kelas C++?

WBOY
WBOYasal
2024-06-02 15:30:011011semak imbas

Prinsip reka bentuk kelas adalah penting dalam C++, dan 5 prinsip berikut membantu mewujudkan kelas yang berkesan dan boleh diselenggara: Prinsip Tanggungjawab Tunggal: Setiap kelas bertanggungjawab untuk satu tugas sahaja. Prinsip Terbuka-Tertutup: Kelas boleh dilanjutkan tanpa pengubahsuaian. Prinsip Penyongsangan Ketergantungan: Modul bergantung pada antara muka abstrak dan bukannya pelaksanaan konkrit. Prinsip pengasingan antara muka: Antara muka hendaklah sekecil mungkin dan disasarkan. Prinsip penggantian Liskov: subkelas boleh menggantikan kelas induk dengan lancar.

Apakah prinsip reka bentuk kelas C++?

Prinsip Reka Bentuk Kelas C++

Reka bentuk kelas dalam C++ adalah penting kerana ia membantu dalam mencipta kod yang telus, boleh diselenggara dan boleh dikembangkan. Mengikuti beberapa prinsip reka bentuk utama boleh meningkatkan keberkesanan reka bentuk kelas anda.

1. Prinsip Tanggungjawab Tunggal

Setiap kelas harus bertanggungjawab hanya untuk satu tugas atau tanggungjawab yang jelas. Ini menjadikan kelas mudah difahami, diuji dan diselenggara.

2. Prinsip pembukaan dan penutup

Kelas hendaklah dibuka untuk sambungan dan tidak ditutup untuk pengubahsuaian. Ini bermakna anda boleh menambah fungsi atau tingkah laku baharu pada kelas tanpa mengubah suai kod sedia ada.

3. Prinsip Inversi Ketergantungan

Modul tidak boleh bergantung secara langsung antara satu sama lain. Sebaliknya, mereka harus bergantung pada antara muka abstrak. Ini membolehkan anda menggantikan modul dengan mudah tanpa mengubah suai modul lain yang bergantung padanya.

4. Prinsip pengasingan antara muka

Antara muka (kelas abstrak atau fungsi maya tulen) hendaklah sekecil mungkin dan disasarkan. Ini membantu mengelakkan gandingan yang tidak perlu dan kebergantungan paksa.

5. Prinsip Penggantian Liskov

Sesuatu subkelas mesti dapat menggantikan kelas induknya dengan lancar. Ini bermakna subkelas boleh melanjutkan tingkah laku kelas induk tanpa melanggar kod klien sedia ada.

Kes praktikal

Pertimbangkan kelas yang menguruskan maklumat pekerja:

class Employee {
public:
    string name;
    int age;
    double salary;
};

Kelas ini melanggar prinsip tanggungjawab tunggal kerana ia mengendalikan maklumat pekerja dan mengira gaji pada masa yang sama. Reka bentuk yang lebih baik ialah memindahkan pengiraan gaji ke dalam kelas yang berasingan:

class Employee {
public:
    string name;
    int age;
};

class SalaryCalculator {
public:
    virtual double calculateSalary(const Employee& employee) const = 0;
};

Kini, SalaryCalculator 负责计算薪酬,使 Employee 可以专注于员工信息。这遵循了依赖倒置原则,因为 Employee 依赖于 SalaryCalculator antara muka dan bukannya sebarang pelaksanaan konkrit.

Atas ialah kandungan terperinci Apakah prinsip reka bentuk kelas 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