增加了原型模式，模板方法模式，访问者模式