00:00
请大家继续观看上硅谷格斗技术视频,这节课我们继续讲解格中的用户自定义插件。我们可以参考cor的官方文档。然后在官方文档这里,它提示我们可以开发定制的grid插件。然后并给出了一个案例,首先这个用户自定义插件,它的本质也是一个二进制插件或者一个对象插件,所以用户自定义的插件肯定也是实现了拉给接口的。你会发现他在实现接口的时候,给他指定一个泛型,泛型为product。然后。我们把这个泛型product传给apply方法,作为方法的参数。通过这个对象,然后咱们声明了一个,Hello。并在这个hello任务里边输出一句话。这是第一步,自定义一个插件,让它实现plan接口,实现接口就意味实现接口中的apply方法。第二步,咱们通过apply plug in来引入这个插件,或者说来应用这个插件。
01:02
那来吧,咱们把这个。给大家复制过来。看一下。类似的,如果我们想制定一个用户自己的,是不是你也可以仿着他写一下就可以了。OK啊,第一步就是先定第二步,然后啊应用应用之后,此时咱们也执行一下这个任务。比如说执行一下哈这个任务。来杠q hello,这个Q你愿意带着就带着,不带着啊,直接指定任务名hello也是可以的。来我们执行这个任务的时候,它会输出。这句话。啊,没有问题。这是用户自定义插件。当然啊,咱们也。官方文档也对用户自定义插件做了拓展,它这里使用的是抽象类的方式,还有啊接口的方式。
02:01
来,咱们把这个也给大家看一下。比如官方文档给出的。这个用户自定义插件,它这里也是实现了一个接口,然后它在拓展的时候,它是通过product对象的extensions拿到一个拓展容器对象。然后调调用拓展容器对象的。这个方法,然后给他指定一个ad值,诶这个create后边这个。字符串啊。它其实就是这个插件的ID值。然后他给他传了一个抽象类,在这个抽象类里边,咱们拓展了一些属性啊,属性其实对应的就是对应的get的方法。然后拓展之后,咱们也在这里边啊,调用了它的这个message这个属性。OK啊,然后定义好了这个插件之后,咱们也就开始应用插件,应用插件之后我们可以通过ID值的方式来定位到。
03:00
这个拓展对象,然后给他的这个属性传值,传值之后咱们通过使用grid-Q。Hello,这个任务名的方式来执行这个任务,他就会啊输出啊,咱们给他传递的这个信息,来我们给大家看一下。复制。CTRLV粘贴。OK啊。然后咱们这里通过这个。任务名给他这个属性赋值。属性显然就是message属性。是吧?咱们前面给大家讲的是讲glue脚本的时候,给大家提到过。它有钙的方法。啊,或者说你操作属性的时候,本质就是操作它的get或者set方法。OK啊,来。这个我们直接复制一下。这就可以了。
04:01
嗯,他是这样设置的。OK啊,此时我们执行do啊,杠q hello。再来,你会发现这一次它输出的就是咱们在外部。给他设置的这个have from grid。没有问题。OK啊行,这是对呀,插件的拓展,当然对插件拓展的时候,你可以使用这种抽象类的方式,其实也可以使用接口的方式。比如说这里使用的是一个接口。你把它换成接口就可以了。然后CTRLC复制,CTRLV粘贴,这样也是可以的。这样我们可以为。这个拓展对象的message或者greater属性给它赋值。是吧,然后输出的这些内容,我们也让他变一下,变成这个。
05:02
然后拿到这个拓展对象,然后调用它的message属性,以及调用它的create属性。没有问题,然后咱们给他的great属性也给它赋值。如果有多个属性的话。啊,你也可以啊。通过这种必包的方式给多个属性复制也是没有问题的。来执行grid-Q后边跟HELLO6名走。这里就会输出这个message high。From后边这个grid还是输出hi from grid没有问题。OK啊,行。这是啊,用户自定义插件。OK啊,当然这里要给大家提示的是,咱们这种用户自定义插件,咱们也在实际开发中一般是不用的,因为它的方式局限性太强,只能是在当前用。
06:04
而其他的是不能使用的。所以后边咱们会给大家拓展一个build的src项目。
我来说两句