From: Sebastian Bergmann Date: Thu, 6 Jun 2002 21:13:39 +0000 (+0000) Subject: Add RFC on delegation. X-Git-Tag: php5_5_0~156 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b0d61f9bd305af5735313d670a50b2461f4da751;p=php Add RFC on delegation. --- diff --git a/Zend/RFCs/004.txt b/Zend/RFCs/004.txt new file mode 100644 index 0000000000..6d973698ef --- /dev/null +++ b/Zend/RFCs/004.txt @@ -0,0 +1,76 @@ +Title: Delegation + (a/k/a. Object-Based Inheritance) +Version: $Revision$ +Status: draft +Maintainer: Sebastian Bergmann + + +Dynamic Delegation + + Syntax / Example + + delegatee = $delegatee; + } + } + + $foo = new Foo; + + $foo->setDelegatee(new aDelegatee); + $foo->doSomething(); /* prints "hubu" */ + + $foo->setDelegatee(new anotherDelegatee); + $foo->doSomething(); /* prints "tubu" */ + ?> + + Semantics / Synopsis + + The "Foo" class may use all methods available in "$bar" as if they + where locally defined or inherited from a superclass. The essential + difference is that by assigning another object to "$bar" it is + possible to dynamically switch between different implementations for + these methods. + + +Fixed Delegation + + Syntax / Example + + doSomething(); /* prints "hubu" */ + ?> + + Semantics / Synopsis + + The "Foo" class may use all methods available in "$bar" as if they + where locally defined or inherited from a superclass. The difference + to the dynamic delegation is that once the delegatee object is set, + it cannot be changed.