理解了默认权限问题，顺便编写了一个静态工厂模式