1.CEGUI中每个Window实例都有一个map<String, Property*>对象,里面记录属性名和属性的映射,这个一开始让我觉得很奇怪,因为同一类的Window,这个对象应该是一样的,那么应该每个Window类有一份数据就可以了。如果要这样实现,那么PropertySet就得是模板类,而由于Window继承自PropertySet,所以Window也成了模板类,这样Window就不能作为抽象基类使用了,所以如果既想Window作为抽象基类,同时每种Window类只有一个map<String, Property*>对象,那么必须让Window拥有PropertySet的指针,而不是继承自PropertySet。以后研究一样这种的可行性。
2.CEGUI中Window对象与3个管理类有关,WindowFactory,WindowFactoryManager还有WindowManager,WindowFactory只是new和delete Window对象,但并不记录他们的指针,他们的指针由WindowManager记录并保持,不同的类型的Window对象对应一个属于自己类型的WindowFactory,WindowFactoryManager拥有所有WindowFactory对象。