当前位置: 首页 > 网络应用技术

代码首先探索:使用装饰器生成SDL

时间:2023-03-08 14:36:14 网络应用技术

  在日常开发中,我们经常遇到许多(模式定义语言)。例如,我们熟悉它。它与我们使用的编程语言无关。我们可以在不同语言平台之间共享模式之间共享相同的目的,以实现相同的目的。

  之后,标题中的含义是什么?在这里,我给出了另一个示例,一个框架,该框架可用于与此框架中的数据库进行交互。在此模式下,数据库中表的字段属性由编程语言中类的字段属性。数据库中表和表之间的关系也由编程语言中的类之间的关系描述。因此,我们只需要操纵派生的对象实例,我们就可以实现数据库添加,删除和研究的功能。

  这个想法已在各种语言和框架中使用。例如,开发人员非常熟悉,它支持该模型。这使我们能够自动生成文件以描述类。它如何做?接下来我们指出。

  decoler(),在不同的编程语言中总是年龄较大的。在世界上,该功能是第一个级别的公民,而中间代理的本质是一个函数。它可以将它们注入类,方法,属性和参数以扩展其功能。装饰工厂只是生成装饰功能功能的功能。它确保通过工厂功能的更改使用使用灵活性。例如,类比等同于一代。由于参数不同,内容是不同的。这样,它与更多方案兼容。

  TC39/提案 - 指标提案现已进入舞台。

  说了很多话,让我们改变描述的课程,并通过实践实践指定!

  该库非常出名,它可以通过我们编写的内容呈现各种矢量图表。

  本文中代码生成的目的是它足够简单,并且有很多人理解,因此很容易理解文章中的想法和案例。

  在编写代码之前,我们必须观察编程语言之间的关系定律,并以最常见的方式为例:

  线:描述图表的是类型()和Direction()。显然这两个值是列举的

  行:描述节点和过程行,其中节点定义其参考键值,节点的形状(正方形,椭圆形,钻石...)和节点文本。该过程行定义了节点和节点之间的单词流程线上的文本值得注意的是,在旅行中,对关系/过程行的定义的描述一起完成!建立节点,并同时完成节点的定义。否则,您必须单独开始并描述它。

  在这里,我给出一个等效的示例,以使上述词更容易理解。

  通过上述分析,我们可以进行初步的装饰签名设计:

  基于这些装饰,我们很容易将上述示例写入一类:

  此类别等同于上面的字符串,但是它是由具有相同内容的不同平台投影的。我们专注于装饰的实现。

  我们知道,中间指数的实现是密不可分的,它添加了操纵元数据()的功能。我们可以在周围实施我们的装饰。

  它是实现这种装饰的一种,它仅接受一个装饰的构造函数。它的目的是声明它是一个,因此我们在这里需要做的是给出相应的标记。请参阅下面的代码:

  实现,这两个都是。这种装饰设备具有两个参数。第一个是原型对象(如果是静态字段,则是类的构造函数),第二个是装饰属性名称。

  如果我们只看一下它,我们可以找到它的功能,该功能主要用于定义字段的属性。明显地,元数据的定义似乎满足了我们的需求。

  但是,一旦我们包括思维范围,我们将发现字段上定义的元数据,该元数据无法很好地反映每个字段之间的连接。当我们实现参数时,节点的地址将变得非常麻烦。在实现时,您将定义原型对象上的元数据,而不是字段上的字段。

  这样,我们保存了元数据的副本,该副本为后续的寻址和验证提供了基础。

  前端视角的说明:在中间和组件中,当组件安装时,组件实例将附加到父级,以便开发人员可以直接操纵组件实例以操作所有内部组件实例。同样的魔术。

  接下来,让我们实施它。由于节点和连接行是一项 - 到达的关系,因此我们可以使用数组来保存此关系:

  通过这种方式,我们的装饰部分被定义了,但是目前我们只完成了中产阶级中现场关系的抽象。我们如何将这种关系变成特定的关系?接下来,我们设计和实施变压器。

  我们已经通过先前类的声明和装饰的实现描述了编程语言。隔离,我们需要返回我们自定义的类。

  首先,让我们简单地定义函数签名:

  插入是一个实例,返回值是一个,可以通过生成图表直接生成。

  观察和思考在实施装饰器时,我们实际上默认情况下确定了一条规则:实际上,装饰者以及一个关系的作用。装饰工厂。

  装饰和角色是一对关系。由于数组保存在元数据中,因此它将仅在元数据中给出元素数据的数组。

  现在,让我们回到现在的示例,使用定义的装饰设备翻译:

  您可以体验节点定义的特征,定义将涵盖先前的定义。例如,B和第三行的第二行中的B和B,尝试在第三行中重新定义B {myturn},它将覆盖。

  通过实现原始转换器的翻译的过程,我们可以编写转换器。下次是,作者的想法是用代码注释编写的。

  这种转换方法最容易理解。同时,它的一代结果类似于:

  显然,这一生成的结果对语法满意,可以成功显示,但是该结果不是简化的结果。尤其是第4-5行,两个重复的节点定义,非常多余,因此我们将改进原始变压器。

  根据原始转换器,我们必须实现更好的转换器。我们必须根据原始转换器将节点的定义结合在一起,以减少冗余。请参阅下面。

  在此结果中,所有冗余定义的定义自动合并以满足我们的需求。

  通过此示例,我们可以在编程语言中绘制各种对象。结果,在编写代码时生成模式。相反,该模型的主要优点是避免在编程语言和语法之间进行上下文切换。

  这种思想用于许多编程框架和场景。当然,编程世界中没有银炸弹。在理解这个想法之后,我们还必须结合特定的业务方案,以考虑利润或损失以发展实际发展。

  源代码(源代码)

  美人鱼

  装饰师(装饰器)

  原始:https://juejin.cn/post/7101645851981774885