gpt4 book ai didi

c++ - 什么时候违反单一职责原则?

转载 作者:行者123 更新时间:2023-11-30 01:54:21 25 4
gpt4 key购买 nike

<分区>

您如何决定何时以及如何违反 single responsability principle

例如,假设我有一个具有以下界面的网络摄像机(为简单起见,界面保持愚蠢和“错误”):

class Camera
{
string user();
void set_user(string user);

string password();
void set_password(string password);

string url();
void set_url(string url);

image take_snapshot();

bool reboot();
}

这看起来很自然,但看起来 Camera 类有 3 个职责:存储元数据、拍摄快照、重启。按照 SRP,您可以这样写:

class Camera
{
string user();
void set_user(string user);

string password();
void set_password(string password);

string url();
void set_url(string url);
}

image take_snapshot(camera c);
bool reboot_camera(camera c);

这里的东西在职责方面被整齐地分开了,但现在它看起来非常像 C 语言,具有愚蠢的结构和函数......这回避了为什么我们首先需要 OOP 的问题。

您如何在便利性和 SRP 之间取得平衡?

[编辑]

@stjin 的想法被@John Zwinck 显示为答案

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com