Typing a Port directly be an Interface gives you only a limited form of service orientation. It is useful as long as:
- you only need to use a Class as a contract with Ports, without specifying the implementation
(you can however delegate from a Port typed by an Interface to an internal part) - you only need the Port to be typed by one Interface (you can't do multiple provide/require without a Block/Class type)
See also: HOWTO provide/require Interfaces via Ports: Quick Start Guide
