这是用泛型,实体类,工厂模式,事件与委托等!