假设有一个 buttonView(即一个简单的按钮)。要在我的 rootView 中注册点击,我执行以下操作:
一般遵循第一种方法:class RootView { var buttonView:ButtonView; .... buttonView.addEventListener(ButtonView.CLICK, buttonView_click) ; ... }
我想知道,为什么不遵循这样的基本方法(第二种方法):
class RootView
{
var buttonView:ButtonView ;
buttonView.setFunction( buttonView_click ) ;
}
class ButtonView()
{
public function setFunction( someFunction:Function)
{
viewFunctionArray_Arr.push( someFunction )
}
public function onClick()
{
// remove dispatchEvent from here , instead
for ( var i=0; i< viewFunctionArray_Arr.length; i++)
{
//calling the registered functions of all the views one by one
viewFunctionArray_Arr[i] ( ) ;
}
}
}
如果解释是关于“松散耦合”的,那么我想知道“第一种方法”是如何松散耦合的,因为毕竟在第一种方法中,我们在需要它的视图中使用实例“buttonView”。所以rootView需要了解buttonView。不是吗?