Chào mừng bạn đến với Selfomy Hỏi Đáp, hãy Hỏi bài tập hoặc Tham gia ngay
0 phiếu
159 lượt xem
Khang1000 trong Tin học lớp 10 bởi Phó giáo sư (31.4k điểm)

1 Câu trả lời

0 phiếu
luckyyhappyy07687 bởi Cử nhân (2.2k điểm)
Nguyên lý thiết kế SOLID là một tập hợp năm nguyên tắc giúp lập trình viên viết mã dễ bảo trì và mở rộng. Các nguyên tắc này bao gồm:

1. S - Single Responsibility Principle (SRP): Mỗi lớp chỉ nên có một trách nhiệm duy nhất.
2. O - Open/Closed Principle (OCP): Lớp phải được mở để mở rộng nhưng đóng để sửa đổi.
3. L - Liskov Substitution Principle (LSP): Các đối tượng của lớp con phải có thể thay thế cho lớp cha mà không làm hỏng chương trình.
4. I - Interface Segregation Principle (ISP): Không nên buộc một lớp phải triển khai các giao diện mà nó không sử dụng.
5. D - Dependency Inversion Principle (DIP): Các module cấp cao không nên phụ thuộc vào module cấp thấp; cả hai đều nên phụ thuộc vào các giao diện.

### Ví dụ áp dụng trong C++:
Giả sử chúng ta xây dựng một ứng dụng quản lý động vật.

1. **Single Responsibility Principle**:
```cpp
class Dog {
public:
    void bark() { /* code to make the dog bark */ }
};

class Cat {
public:
    void meow() { /* code to make the cat meow */ }
};
```
Mỗi lớp chỉ có một trách nhiệm.

2. **Open/Closed Principle**:
```cpp
class Animal {
public:
    virtual void sound() = 0; // Giao diện trừu tượng
};

class Dog : public Animal {
public:
    void sound() override { /* dog sound */ }
};

class Cat : public Animal {
public:
    void sound() override { /* cat sound */ }
};
```
Bạn có thể thêm động vật mới mà không cần sửa đổi lớp Animal.

3. **Liskov Substitution Principle**:
```cpp
void makeSound(Animal* animal) {
    animal->sound(); // Có thể thay thế Dog hoặc Cat mà không gây lỗi
}
```

4. **Interface Segregation Principle**:
```cpp
class IAnimal {
public:
    virtual void eat() = 0;
};

class Dog : public IAnimal {
public:
    void eat() override { /* dog eating behavior */ }
};
```
Không ép buộc động vật phải thực hiện những hành vi không liên quan.

 

Các câu hỏi liên quan

0 phiếu
1 trả lời 130 lượt xem
0 phiếu
1 trả lời 128 lượt xem
0 phiếu
1 trả lời 106 lượt xem
0 phiếu
3 câu trả lời 318 lượt xem
Mô tả cách hoạt động của tính kế thừa (inheritance) trong C++. Giải thích các loại kế thừa và ưu nhược điểm của từng loại.
đã hỏi 31 tháng 10, 2024 trong Tin học lớp 10 bởi Khang1000 Phó giáo sư (31.4k điểm)
0 phiếu
1 trả lời 316 lượt xem
0 phiếu
1 trả lời 88 lượt xem
0 phiếu
1 trả lời 196 lượt xem
Viết chương trình C++ sử dụng các lớp để mô phỏng một hệ thống quản lý sinh viên, bao gồm các thuộc tính và phương thức phù hợp.
đã hỏi 23 tháng 10, 2024 trong Tin học lớp 10 bởi Khang1000 Phó giáo sư (31.4k điểm)
0 phiếu
1 trả lời 120 lượt xem

HOT 1 giờ qua

  1. trannhat900trannhat900

    52948 Điểm

  2. phamngoctienpy1987844phamngoctienpy1987844

    50728 Điểm

  3. vxh2k9850vxh2k9850

    35980 Điểm

  4. Nqoc_bakaNqoc_baka

    34614 Điểm

Phần thưởng hằng tháng
Hạng 1: 200.000 đồng
Hạng 2: 100.000 đồng
Hạng 3: 50.000 đồng
Hạng 4: 20.000 đồng
Phần thưởng bao gồm: mã giảm giá Shopee, Nhà Sách Phương Nam, thẻ cào cùng nhiều phần quà hấp dẫn khác sẽ dành cho những bạn tích cực nhất của tháng. Xem tại đây
Bảng xếp hạng cập nhật 30 phút một lần
...