avalon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Hawkes" <jhaw...@adsnm.com>
Subject Re: [RRT] An interface is all you need
Date Thu, 18 Mar 2004 15:14:19 GMT
<snip type="excerpt">
The only semantics that are associated with an interface are the ones that
you enforce. A class can be an implementation of a particular interface, and
that class has its own semantics. You may require that all classes that
implement an interface follow a certain set of rules, but you can only
enforce those rules using tests that you apply outside of the compiling
environment. Your tests may be code walkthroughs or a conformance test
framework, but even if you feel strongly that your interface implies a
semantic contract, the only contract that is enforced by the language is
that any class that implements the interface will include the signatures in
that interface.
</snip>

I agree, but I also think that there are definite advantages to attaching
rules to an interface.  See the java collections framework as an example.
Certainly, you could implement a remove method that actually adds, but that
would be stupid.  This is why interfaces with attached semantics should come
with conformance test suites.  I think that the whole point is that there is
no way to 100% safeguard against misuse when using an interface (or even any
non-final class).

----- Original Message ----- 
From: "Berin Loritsch" <bloritsch@d-haven.org>
To: <dev@avalon.apache.org>
Sent: Thursday, March 18, 2004 7:55 AM
Subject: [RRT] An interface is all you need


> You know, that article that Bruce Eckel produced
> (http://mindview.net/WebLog/log-0051) was thought provoking.  Should
> there be additional semantic meaning to an interface?  I used to think
> so, but now I don't.
>
> An interface is all you can enforce in code, and all you should expect
> the user to respect.  But that's just me.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Mime
View raw message