WebGIS态势标绘

WebGIS态势标绘

总体参考https://gitee.com/ilocation/plot

总结:
1、绘制工厂PlotFactory.js 中代码可以优化,考虑到后期扩展符号,以下这种写法需要修改PlotFactory.js不停的扩展case条件 ,这种简单工厂模式该如何优化???

P.PlotFactory = {};
P.PlotFactory.createPlot = function(type, points){
    switch(type){
        case P.PlotTypes.ARC:
            return new P.Plot.Arc(points);
            //case....
            }
    return null;
}

2、适配器模式

2.1类适配器模式:
适配器所涉及的角色包括下面几种:
目标(Target):定义一个客户端使用的特定接口(符号对外的统一接口Plot)
客户端(Client):使用目标接口,与和目标接口一致的对象合作(交互类draw,edit )
被适配者(Adaptee):一个现存需要适配的接口(各大厂商GIS接口)
适配器(Adapter):负责将Adaptee的接口转换为Target的接口(符号类适配器)

类适配器模式是指适配器Adapter继承被适配者Adaptee,并实现目标接口Target, 或者Adapter二重继承Adaptee 和Target,标绘软件采用二重继承的方式。

标绘软件工厂类生产各类符号的类适配器,继承各大GIS厂商接口,同时继承符号对外的统一接口Plot ,由于适配器类是适配者类的子类,因此可以在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。同时将符号(目标类)和厂商(适配者类)解耦,扩展符号就与厂商无关了。

你可能感兴趣的:(WebGIS)