重写了继承，有更良好的扩展性
增加了trigger，能够更好的解耦