Briefly, design patterns in software engineering can be described as general solutions to frequent, recurring problems. Since I have a lot of experience with C or C++, design patterns reminds me of function declarations. The idea is that the programmer...