多项选择题

A.设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用
B.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案
C.这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的
D.设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦一样