注意:我是ZCA的新手,因此代码可能不正确;但是,我对ZCA的工作方式有些熟悉。
举个例子:
class I1(Interface):
def c1():
pass
class U1(object):
implements(I1) #is this necessary?
def c1():
#do some things here
是否需要implements(I1)
行,或ZCA能否自行确定U1实现I1(有点像Go中的接口工作方式)?
答案 0 :(得分:4)
组件不需要声明它。组件的接口在组件注册表中注册时非常重要,因为组件查找是在接口上完成的。
您可以通过多种方式告诉组件注册表组件实现哪个接口。一种方法,最常见的方法是对组件本身使用implements()调用。您还可以告诉组件注册表在注册组件时它实现了哪些接口。
还有一些函数可以检查组件是否实现了特定的接口,主要用于测试。
所以是的,ZCA中的接口与它们在Go中的作用非常相似,但是添加了一个组件注册表(除非Go有这个,但我错过了,我不是Go专家)你可以快速查看基于接口和名称的组件。