Re: In what scenario an extension of a class is useful?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



inheritance of this kind is useful if you have common descendants for
specific types of object

object mammal (
 function eat (mixed $food)
 function shit ()
 function sleep()
)

object carnivore extends mammal (
  function eat (meat $food)
 )

object herbivore extends mammal (
  function eat (veggies $food)
)

now you can call the descendant mammal->eat() from carnivore->eat()
and herbivore->eat() to process foods.
their mammal->vitality settings (lets say its a subproperties-array)
will be updated, with custom handling taking place in carnivore->eat()
and herbivore->eat() while mammal->eat() is likely to update those
vitality properties..

another use, is a modification of a certain component.
descend it from the parent object and override the functions.
you can do pre processing and post processing by overriding functions.

On Wed, Jun 23, 2010 at 5:58 AM, Camilo Sperberg <unreal4u@xxxxxxxxx> wrote:
> Hello everybody :)
>
> I'm really intrigued on something... In what real-world applications could
> an extension of a class be really useful?
>
> Let's say I have this code:
>
> class foo {
>  function hello_world($a) {
>    echo 'foo hello world';
>  }
>
>  function bye_world() {
>    echo 'foo bye world';
>  }
> }
>
> class bar extends foo {
>  function hello_world($a,$b) {
>    echo 'bar hello world';
>  }
> }
>
> Point 1: Why not just overwrite the hello_world method in the foo class in
> the first place? Wouldn't that save code and possible incompatibility or
> consistency issues between the code you've already written and between the
> two classes ? (Assuming that you do some things based on the $a and $b
> values).
>
> Point 2: On the other hand, maybe I could apply different operations to both
> (e.g.: return 1 in foo and 2 in bar), without breaking the basic
> functionality already achieved in the foo class. (Maybe considering that I
> want to apply an update or patch to an already existing application,
> however, is this is the scenario, I should always fix the old code wherever
> I invoke the foo class which returns us to point 1).
>
> Point 3: Ok, maybe I don't want a specific class to be so huge and I
> separate it into "pieces" of classes. But then again, wouldn't it be simpler
> to just save some code and keeping only one file with the entire class?
>
> Is it just that or do I miss something else? I'm not saying it is useless,
> it sounds indeed fantastic to work with... but I just can't imagine in what
> real-world cases this would be useful.
>
> Greetings !
>
> --
> Mailed by:
> UnReAl4U - unreal4u
> ICQ #: 54472056
> www1: http://www.chw.net/
> www2: http://unreal4u.com/
>



-- 
---------------------------------
Greetings from Rene7705,

My free open source webcomponents:
  http://code.google.com/u/rene7705/
  http://mediabeez.ws/downloads (and demos)

My music (i'm DJ firesnake)
  http://mediabeez.ws/music

http://www.facebook.com/rene7705
---------------------------------

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux