Which of the following is true about design patterns? a. Represent the best practices used by experienced object-oriented software developers b. Solutions to general problems that developers commonly face during software development c. Obtained by trial and error of numerous software developers over a substantial period of time d. All of the above e. None of the above