Re: Decorator with public methods

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

 



On Dec 26, 2008, at 7:53 PM, Larry Garfield wrote:

I have an object to which I want to add behavior (methods). I cannot use inheritance here because the object is already of a type or subtype (vis, I am already using inheritance for something else), and because I want to be able
to add multiple types of behavior at runtime.

If I understand what you are wanting to accomplish, perhaps a simpler solution:

Whenever I create a function in a core-level class, I add pre- and post- execution language to it. For example:

class foo_bar {

  function foo () {
    if (!on_foo()) {
     return FALSE;
    }
    // normal foo code
    // normal foo code
    // normal foo code
    // normal foo code
    // normal foo code
    if (!more_foo()) {
     return FALSE;
    }
  }

  function on_foo() {
    return TRUE;
  }

  function more_foo() {
    return TRUE;
  }
}

-- then in the child class:
class child_bar extends foo_bar {

 function on_foo() {
  // runtime code
  // runtime code
  // runtime code
  // runtime code
  return TRUE; // (or FALSE)
 }
}

Ken

--
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