程序设计人员总是希望写的程序优美一点,就是这个问题,在egret白鹭引擎中,白鹭引擎应用了一个flash的标准事件流设计思想去打造了一个flash一模一样的事件系统。
我们可以看这个类
这个东西啊,是非常优美的了。
但是我在写程序的时候可能会这样用
这是一个游戏中交易行拍卖系统,拍卖系统设计有单个拍卖物品的条和存放控制这些条的对象池,而在对象池中进行对交易条监听点击、并且不能把其移动到条的逻辑里面,只能放在对象池的逻辑中操作,我觉得这些这么长的回调可能有一点不够,优美~
所以我准备把监听点击事件处理函数做成一个外部的函数封装,然后把点击也分出函数封装然后在这个对象池中多两个函数进行处理这个部分的逻辑操作。
但结果是addEventListener并不能进行传参,不能用一种call的方法传值调用。而网友给的解决方案是函数套函数,这样做看上去更加的不优美了~
所以也只能妥协,降低自己对程序的洁癖程度,允许这样的程序出现。
其实这样写下去问题也不大,没有循环调用,而且程序简单易懂。