抽象工程模式——解决switch语句的冗杂问题
    特例模式——解决异常处理与业务逻辑耦合的问题
    适配器模式——将同一个对象的两个不同实现整合
    模板方法模式——消除重复;given-when-then约定?
    策略模式——消除重复