首页 > 代码库 > 8.3 使用组合行为

8.3 使用组合行为

8.3 使用组合行为

 

在这一章,我们所讨论处理行为的应用程序或组件,能够在开发的后期,甚至在运行时添加新的行为;关键的设计思想是要保证添加新的行为要尽可能容易。在我们实现新的功能之后,应该可以注册这个函数(例如,通过将其添加到列表),并在应用程序使用,而不需要修改任何代码。

为使问题简化,最好是使需要实现的函数数量最小化。通常情况下,一个函数足以表示功能,但在某些情况下,可能需要包含额外的信息,或提供更多的函数,就不够了。当然,在函数式程序中,其他的函数是唯一的“额外的信息”,我们可以运行信息以提供更丰富的反馈。

第一种情况的一个例子可能是图形编辑器中的滤镜。滤镜本身是处理图片的函数,但我们也可以提供滤镜的名字(作为一个字符串)。编辑器的用户无论何时调用我们的函数,更愿意看到“友好”的名字和描述,而不是所有的内在命名约束。

在下一节,我们将看到第二种情况,即,需要更多的函数。我们将改进贷款程序,使检查可以报告更多的细节,如果客户检查“失败”,为什么建议拒绝贷款,将使用第二个函数,输出报告。

 

8.3 使用组合行为