书城计算机大话设计模式
11030400000145

第145章 4 操作和方法

小A:“在有关类的众多术语中,是不是尤其需要注意区分操作与方法这两个概念?”

大B:“是的。UML是这样定义操作和方法的:1、操作就是能够被类的实例调用的服务的规范。2、方法则是操作的实现。”

大B:“注意,操作是在方法之上的抽象概念操作定义类所提供的服务,并给出调用该服务的接口。多个类可以用不同的方法实现同一个操作。例如,很多类都以自己的方式实现toString()操作。而每个类都是通过实现方法来提供某种操作,操作的实现代码构成了类的方法。通过对方法和操作进行定义,我们可以澄清很多设计模式的结构。操作的含义是从方法的概念上抽象而来的。由于设计模式也是从类和方法升华而来,因而,在很多设计模式中,操作都发挥着非常重要的作用。例如,在Composite模式中,一个操作既被应用于叶节点对象上,又被应用于组合对象上。而在Proxy模式中,一个中介者对象与目标对象具有相同的操作,从而使得中介者对象可以管理对目标对象的访问。同样,责任链(Chain of Responsibility)模式是在一个对象链上分发某个操作。每个对象的方法要么直接实现该方法的业务,要么将对该方法的调用转发到责任链上的下一个对象。”