美文网首页
第三十章 Classes - 方法生成器

第三十章 Classes - 方法生成器

作者: Cache技术分享 | 来源:发表于2023-09-17 08:03 被阅读0次

    第三十章 Classes - 方法生成器

    方法生成器

    方法生成器是类编译器在类编译期间调用的程序。它的输出是该方法的实际运行时实现。方法生成器提供了一种继承方法的方法,可以生成根据继承类或属性的需要定制的高性能、专用代码。在 IRIS 库中,方法生成器广泛用于数据类型和存储类。

    Class Queries

    类可以包含类查询。类查询定义可由该类使用的 SQL 查询,并指定用作查询容器的类。下面显示了一个示例:

    Query QueryName(Parameter As %String) As %SQLQuery
    {
    SELECT MyProperty, MyOtherProperty FROM MyClass
     WHERE (MyProperty = "Hello" AND MyOtherProperty = :Parameter)
     ORDER BY MyProperty
    }
    

    定义类查询以提供预定义的查找以供在应用程序中使用。例如,可以按某些属性(例如按名称)查找实例,或提供满足一组特定条件的实例列表,例如从巴黎到马德里的所有航班。此处显示的示例使用参数,这是提供灵活查询的常用方法。请注意,可以在任何类中定义类查询;不需要在持久类中包含类查询。

    扩展数据块 XData Blocks

    由于 XML 通常是表示结构化数据的有用方法,因此 类包含一种机制,允许包含格式良好的 XML 文档,以满足可能有的任何需要。为此,需要包含一个 XData 块,它是另一种类成员。

    XData 块用于某些特定目的,这些可能会给关于自己的应用程序的想法:

    • IRIS Web 服务和 Web 客户端的 WS-Policy 支持。在这种情况下,XData 块描述了安全策略。
    • 在商业智能中,可以使用 XData 块来定义多维数据集、主题区域、KPI 和其他元素。

    类定义中的宏和包含文件

    在类定义中,可以在 ObjectScript 方法中定义宏并在该方法中使用它们。然而,更常见的是,在包含文件中定义它们,可以将其包含在任何类定义的开头。例如:

    Include (%assert, %callout, %occInclude, %occSAX)
    
    /// Implements an interface to the XSLT Parser. XML contained in a file or binary
    /// stream may be transformed
    Class %XML.XSLT.Transformer Extends %RegisteredObject ...
    
    

    然后,该类中的任何 ObjectScript 方法都可以引用该包含文件或其包含的包含文件中定义的任何宏。

    宏是继承的。也就是说,子类可以访问与其超类相同的所有宏。

    相关文章

      网友评论

          本文标题:第三十章 Classes - 方法生成器

          本文链接:https://www.haomeiwen.com/subject/lxaivdtx.html