Sapui5 如何扩展UI5中的定制类(非自定义控件)

Sapui5 如何扩展UI5中的定制类(非自定义控件),sapui5,Sapui5,使用UI5使用的AMD和模块范例,我希望在不同的JS文件中使用单独的JS类,将ajax代码与相关控制器分开 一个基础类将关注常见的活动,如通用错误处理,而从这个扩展的特定类将只处理特定于主题的Ajax通信。这不是自定义控件,因此不需要渲染功能、元数据等 我希望从sap.ui.define功能中获益,同时也希望我的新类成为优秀的UI5公民。例如,我想在实例化类时启动init 我应该从哪个sapui5类扩展?我目前使用的是sap/ui/base/Object,但我想知道是否有更好的选择,是基于更好的

使用UI5使用的AMD和模块范例,我希望在不同的JS文件中使用单独的JS类,将ajax代码与相关控制器分开

一个基础类将关注常见的活动,如通用错误处理,而从这个扩展的特定类将只处理特定于主题的Ajax通信。这不是自定义控件,因此不需要渲染功能、元数据等

我希望从sap.ui.define功能中获益,同时也希望我的新类成为优秀的UI5公民。例如,我想在实例化类时启动init

我应该从哪个sapui5类扩展?我目前使用的是sap/ui/base/Object,但我想知道是否有更好的选择,是基于更好的性能还是更符合目的

我知道,但这似乎只关注呈现到屏幕的类的细节

这是我当前方法的框架:

sap.ui.define(['sap/ui/base/Object'],

    function(BaseObject) {
        "use strict";

        var AjaxBase = BaseObject.extend("myAjaxBase", {

            constructor: function(oControl) {
                BaseObject.apply(this);
                console.log("AjaxBase.constructor() fires")
            }
        })

        AjaxBase.prototype.init = function() {
            console.log("AjaxBase.init() fires")
        }
        return AjaxBase;

}, true)

即使对于不扩展
sap.ui.base.Object
的对象,也可以使用
sap.ui.define
。因此,如果您真的不需要UI5对象提供的功能,就不必对其进行扩展。但是,在您的情况下,看起来您希望使用事件支持,在这种情况下,至少扩展
sap.ui.base.EventProvider
会很有用

当您希望将后端调用与控制器分离时,您似乎正在使用JSONModel,并且具有比读取更复杂的用例。在这种情况下,还可以扩展JSONModel,支持创建、更新和删除操作