scala设计模式