That would be dynamically aggregation with other keywords (Delphi does not have MI or aggregation).
At 11:27 09.04.2002, you wrote: >On 09/04/02, "Kristian Koehntopp" <[EMAIL PROTECTED]> wrote: > > On Mon, Apr 08, 2002 at 08:57:09PM -0400, fabwash wrote: > > > My vote is "java" like: no MI, no aggregation, single inheritence and > use of > > > interfaces :) > > > > Could you please explain how interfaces promote code reuse? > > > > I am not the perfect java pro, and as I understand it, > > interfaces define a set of instance variables and methods that > > must be there in order to be compliant to an interface, but > > provide to way to import an implementation of such an interface > > into an existing class. > >That's right. There does need to be a way to make this easier. >Delphi allows this: > >type > IFred = interface > procedure FredMethod; > end; > > TFredImpl = class(IFred) // TFredImpl implements IFred > procedure FredMethod; > end; > > TMyClass = class(IFred) > private > FFred: IFred; // Hold a reference to the IFred impl > public > // And this tells the compiler to delegate IFred methods > // to FFred member, which can be located/created at runtime > property FredImpl: IFred read FFred implements IFred; > end; >It's a bit cumbersome, but could be represented as something like >this in PHP, if we had interfaces: > >class FredImpl implements IFred { > function FredMethod() { > } >}; > >class MyClassStatic implements IFred, extends FredImpl { >}; > >class MyClassDynamic implements IFred { > delegate IFred to $fredimpl; > > function MyClass() { > $this->fredimpl = new FredImpl; > } >}; > >An instance of MyClassStatic looks and smells like an instance of >MyClassDynamic to other objects at runtime, but MyClassDynamic >has the added advantage of being able to dynamically locate the >code for it's implementation of the Fred interface. > >--Wez. > > >-- >PHP Development Mailing List <http://www.php.net/> >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php