The sample in this article could lead one to think that an interface is required in order to implement a service; this is not the case. The sample could have been written without the ICalculator interface by applying the ServiceContract attribute to the CalculatorService class and the OperationsContract attribute to the methods. The decision to use an interface in the sample appears to be a stylistic one by the authors; nothing else should be read into it as far as implementing services is concerned.