实现composition模式