    import { Evented } from '../base'
    import { defaultValue, Log } from '../util'

    /**
     * 图层视图类
     * @private
     * @classdesc 视图基类
     * @extends Evented
     * @param {Object} options 构造参数
     * @param {BaseView}  [options.view ]  视图
     * @param {Layer} [options.layer ] 图层
     */
    class LayerView extends Evented {
      constructor(options) {
        super()
        const opts = defaultValue(options, {})
        // BaseView
        this.view = opts.view
        if (!this.view) Log.error('视图对象不存在！')
        // Layer
        this.layer = opts.layer
        if (!this.layer) Log.error('图层对象不存在！')
        // 实际引擎视图
        this.innerView = this.view.getInnerView()
        if (!this.innerView) Log.error('视图对象InnerView不存在！')
        // 实际图层
        this.innerLayer = null
        // id
        this.id = this.layer.id
      }

      /**
       * 添加图层视图
       * @param {LayerEvent} 图层事件
       * @return {Promise<LayerView>} 图层视图
       */
      onAdd(event) {}

      /**
       * 移除图层视图
       * @param {LayerEvent} 图层事件
       * @return {Promise<LayerView>} 图层视图
       */
      onRemove(event) {}

      /**
       * 更新图层视图
       * @param {LayerViewUpdateEvent} 图层事件
       * @return {Promise<LayerView>} 图层视图
       */
      onUpdate(event) {}
    }
    export default LayerView