Consultation (object-oriented programming)
From Wikipedia, the free encyclopedia
Consultation in object-oriented programming occurs when an object's method implementation consists of a message send of the same message to another constituent object.
[edit] Example
class CustomerList { List<Customer> customers = new ArrayList<Customer>(); public void add(Customer customer) { customers.add(customer); // this is a consultation } }
In this example, the add
method of CustomerList
consults the List
instance to implement the semantics of adding a value to the list. Consultation can be very useful if extra conditions or side-effects have to occur on the method invocations. For instance in this example, the add method can be used to check if the customer is not yet in the list, and to check for non-null customer object.
[edit] Delegation
Consultation is often incorrectly referred to as delegation. The main differences with delegation are that consultation is explicit in the code not a language mechanism as such, and that consultation does not preserve late binding of self whereas delegation does.