Le 22 mars 07 à 18:30 Soir, [EMAIL PROTECTED] a écrit: > On Mar 22, 2007, at 16:14 UTC, Arnaud Nicolet wrote: > >> May I ask you for a simple example where interface is the only way to >> solve a problem? > > I don't know if anything is ever the "only" way to solve a problem, > but > I can give examples where it's the best way. > > One has already been discussed: dynamically responding to a button or > timer in code. Suppose actionReceiver were not an interface, but > instead a base class that you'd have to subclass in order to do this > trick. Then, you would not be able to do it with a Window, or with > your own control (e.g. a Canvas subclass that needs to periodically > update itself), or with some subclass of Sprite or Object3D in a game, > or anything else. It would be nearly worthless. But as it is, you > can > add the actionReceiver interface to ANY class, regardless of what it's > already subclassing or what other interfaces it may need to implement. > Very handy. > > Another example: suppose you want to write code that can read data > of a > particular format, but you want to make it general -- the data > could be > coming from a TCPSocket, or a Serial port, or even a BinaryStream, and > there's no reason your code should care. So you have it accept a > Readable, which is an interface all those classes (plus more the user > of your code could define!) implement. A BinaryStream IsA Readable; a > TCPSocket IsA Readable; an so on. So the caller can pass in any of > those, and your code will operate on them just fine. How would you do > this without interfaces?
Hmm, indeed that makes sense. Thank you. _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
