以前看到了很多批评C++的头文件。但是我还是有点不明白,虽然头文件有很多地方不好,比如说:和cpp文件分离,不容易维护,改了cpp文件还要转过来改头文件。不过,头文件的出现也是有原因的,比如说它隐藏了代码的实现,这样子我们就可以把源文件实现在dll中交给客户就可以了,客户就根据头文件来进行代码的调用。
现在的java,c#等都没有头文件的概念了。而且他们是后来出现的,应该说他们比c++更有优势的,那他们怎么来表现头文件呢?毕竟我们也是不可能就把源代码给用户吧?这个问题很早以前就想到过,不过以前没有深入去想,也是那时候感觉好像就是没提供就没提供。今天突然想到:不是由接口interface吗?我不用头文件,我直接提供给用户interface不就得了?虽然我们不可能给每个类提供一个interface,但是我们可以给一个subsystem提供一个interface。如果我们得要给每个类提供一个interface,那就说明我们的设计太有问题了,封装的太差了。Over。