In echoing what others have said, the two biggest things that helped me were, learning to mend my line better - getting that good drift without having a ton a slack and learning to recognize the difference between a take and a slap and how to respond to slap to get to the take.
In the case of a slap, I usually change the fly to size bigger or smaller (depending on what I got the slap on). It can make a big difference. If it doesn't, I go to the original size, but a slightly different pattern (such as switching from a male to female adams) and keep trying things until I get it right. Maybe this is too tedious of an approach, but it seems to work ok for me and others can probably offer better insight in to how to handle slaps than I can.