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