MST

星途 面试题库

面试题:C++中抽象类接口设计的基本准则

在C++中设计抽象类接口时,简述至少三条基本的设计原则,并举例说明其中一条原则如何在实际代码中体现。
31.8万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 单一职责原则:一个抽象类接口应该只负责一个明确的功能,避免接口臃肿。例如,图形绘制接口DrawInterface,只专注于图形绘制相关的操作,如draw()方法,不应该包含图形移动、缩放等其他无关功能。
  2. 依赖倒置原则:高层模块不应该依赖底层模块,二者都应该依赖抽象接口。比如游戏开发中,游戏逻辑模块(高层)不直接依赖具体的图形渲染库(底层),而是依赖图形渲染的抽象接口,这样便于替换不同的渲染库。
  3. 接口隔离原则:客户端不应该依赖它不需要的接口。比如,一个电商系统中,用户模块只需要登录、注册接口,就不应该被强制依赖商品管理等无关接口。

以单一职责原则为例,实际代码体现如下:

// 图形绘制抽象类
class DrawInterface {
public:
    virtual void draw() = 0;
};

// 圆形类,实现图形绘制接口
class Circle : public DrawInterface {
public:
    void draw() override {
        std::cout << "Draw a circle." << std::endl;
    }
};

// 方形类,实现图形绘制接口
class Square : public DrawInterface {
public:
    void draw() override {
        std::cout << "Draw a square." << std::endl;
    }
};

在此代码中,DrawInterface只专注于图形绘制这一职责,CircleSquare类各自实现draw方法来完成具体图形的绘制,符合单一职责原则。