CityMaker 8 二次开发之创建几何类型(工厂模式)
如上图:
1)IGeometry依赖于工厂接口,也就是IGeometry不能直接new一个对象,需要工厂接口来辅助对象创建。所有的几何对象都是这样创建的。
2)IGeometryFactory由GeometryFactory实现,通过IGeometryFactory geoFac = new GeometryFactory();创建工厂对象,再考虑由geoFac创建其它几何对象。
3)IGeometryFactory接口中的CreatePoint()与CreateGeometry()在创建IPoint时功能一样的,可能只是为了方便使用吧。个人觉得抽象级别略有点不太好,非规范化微调吧,方便使用。
4)总之,两点:a)类的状态机得以很好的维护。2)领域逻辑得以集中描述。