重构了BaseWindow