5种设计模式挑战与收获