8.1.1 把行为表示为对象

来源:互联网 发布:淘宝多肉植物哪家好 编辑:程序博客网 时间:2024/05/17 01:15

8.1.1 把行为表示为对象

 

我们先从C# 版本开始,因为在C# 3.0 中,用函数方式处理行为集合,在某种程度上与 F# 类似。在我们讨论函数式版本之前,有必要看一下用纯粹的面向对象的风格写同样的模式。

我们可能会先声明接口,只有一个方法,执行检查,并返回是否失败。在我们的贷款示例中,返回值为 true 表示,应拒绝贷款。后面,我们会在几个类中实现这个接口,提供具体的检查。清单 8.1 显示了这个接口与简单的实现。

 

清单 8.1 用面向对象风格检查是否应该贷款 (C#)

interface IClientTest {

  bool IsClientRisky(Client client);    [1]

}

class TestYearsInJob : IClientTest {  <-- 实现一个检查

  public bool IsClientRisky(Clientclient) {

    return client.YearsInJob< 2;    [2]

  }

}

 

处理像这样实现的检查,需要创建包含接口类型元[1]素(例如,List<IClientTest>)的集合,然后,把实现该接口的每个类的实例添加到集合中。我们必须为每个检查创建单独的类,尽管条件本身是一个简单的紧凑的表达式[2]。

 

0 0