ok 实现了通用三层