The existence of header files does not really impact the design of your software - when I am decomposing requirements to components and then designing those components, the fact that C and C++ use header files and Java and other languages do not does not really concern me.