Kristian Köhntopp wrote:
> brad lafountain wrote:
> 
>>Unless someone could give me a real reason that 
>>aggerate is better than MI.
> 
> 
> Aggregation does at runtime what MI does at compile time.
> Delaying the decision to "do" something is usually an enable for
> specific applications. 

I agree. It would be useful some application.

Brad,
Having aggregate will affects MI support at script engine
level?

If it affects or may affect, we are better to make it a
experimental at least. We don't have to limit ourself
at this point, right?

--
Yasuo Ohgaki

> 
> Examples are the signal/slot  mechanism based call-models  in
> Gnome and Qt vs. virtual function tables in C++. The decision
> which implementation for a method is being called is delayed to
> the actual point in time when a call is being made, enabling a
> much more flexible component model and much better reuse.
> 
> The cost for doing things late is worse typechecking, errors are
> potentially caught only at call-time, not at compile-time (with
> Qt, it probably is link-time, due to the way it is implemented).
> 
> The same goes with aggregation. Aggregation allows me to write a
> class "Soaping", which implements a SOAP RPC Client and a
> SOAPFactory class, which manufactures objects of any class and
> aggregates Soaping into them:
> 
> I could include_once() any unknown class, create an instance
> and use PHPs introspective functions to create a list of 
> functions and instance variables in this class. By adding 
> Soaping functionality to the class, and with the help of 
> getters, setters and wrappers provided by overload(), I 
> can intercept all accesses to this instance, turn them into
> SOAP calls to some remote instance of that object, and
> marshall the results back into my application.
> 
> The beauty of this is, that I can do this at run-time, and that I
> can do this generically with any old class, using two miniscule
> additions to the system, aggregate() and overload(). Yet for the
> user this is probably transparent.
> 
> 
>>Class definition is defined at design time not run time!
> 
> 
> No, it isn't. Unless you are stuck with C++.
> 
> PHP is for rapid prototyping. That may turn into rabid
> prototyping (SCNR the pun) if you do not know how to use it, but
> it may also be an extremely powerful tool as I have shown. 
> 
> Generally speaking, it allows you to design metaclasses and
> metasystems, which add some general function to the language
> itself.
> 
> Kristian
> 




-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to