审查代码,看到一个类
class Sink {
private:
std::unique_ptr<AnInterface> in_;
public:
explicit Sink(std::unique_ptr<AnInterface> in):in_(std::move(in)){}
bool Put(int size, void* data) {
in_->Write(size, data);
}
};
我说你直接写一个命名空间不行吗?
namespacde utils {
bool Put(AnInterface* in, int size, void* data) {
in_->Write(size, data);
}
}
然后讨论了半天。我觉得这个类里面这个私有变量完全没有必要。对方提出的第一个理由是,我写了一个超姐简单的类。可是我的类至少构造函数利用传进来的参数调用了函数才赋值给私有变量,不是直接传进来的。另一个我的类里面有一个私有变量也是中间产物,所以后面函数多次调用要用的。这样的中间产物没有必要暴露,所以用一个类封装起来。对方另外一个理由是,封装后如果上游代码改了形式,他不用改主要的程序,只改这个类就行了。可是我觉得他只改那个函数就行了。
--
修改:bihai FROM 98.42.143.*
FROM 98.42.143.*