cuốn sách gpt4 ai đã làm

c++ - 封装:我应该将一个对象的数据传递给另一个修改它的类吗?

In lại Tác giả: Walker 123 更新时间:2023-11-28 02:09:45 26 4
mua khóa gpt4 Nike

我想要类似下面的代码:

class Foo{

công cộng:

void update() {
for( auto dataModifier : _dataModifierList ) {
dataModifier.modify( Data& _data );
}
};

riêng tư:
Data _data;
std::vector _dataModifierList;

};

因为我正在将 Foo 的数据发送到另一个修改它的类,这是否被认为是不良封装?感觉就像我将 Foo 的内容暴露给 DataModifier.

我这样做的原因是因为我想为每个 Foo 实例注册一些 DataModifier.

câu trả lời hay nhất

如果 DataModifier 获得对 Data 对象的引用以就地修改它,那么从封装的角度来看它是完美的。如果您将 DataModifier Foo 设为友元,这样它就可以随时更改其成员,而无需调用 Foo 的任何方法,这将是一个缺陷。如果您决定将对私有(private) data_ 的引用存储在 Foo 之外的某处,而不是将其传递给 DataModifier,我也会认为这是糟糕的设计。

关于c++ - 封装:我应该将一个对象的数据传递给另一个修改它的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36159985/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress