0 c++
具有成员函数但不对类的数据成员(直接或间接)进行操作的类是减少封装,更紧密的耦合还是更低的内聚力?为什么?
编辑:
class Data
{
private:
int value_;
public:
Data(int value) : value_(value) {}
int compute(int coef)
{
check(coef);
return coef * value_;
}
void check(int n)
{
if (n < 0 || n > 344) {
throw string("Invalid coef");
}
}
};
Run Code Online (Sandbox Code Playgroud)
该检查会员功能N验证传递给该参数的有效性计算成员函数,但它无关的数据成员的数据
这三个都是.您减少了封装,因为该函数可以对类的数据成员进行操作.即使没有必要,您也可以访问它,从而违反了封装.并且出于同样的原因,它导致较低的内聚力和更紧密的耦合(该类成为一组功能,似乎没有理由被组合在一起.
在C++中,在这种情况下,通常首选免费(非成员)函数.
归档时间: |
|
查看次数: |
245 次 |
最近记录: |