A method for dynamically extending functionality of an object without
modifying executable code includes the steps of first identifying an
existing object as a primary facet object (16) and creating an aggregate
object (14). The primary facet object (16) is linked to the aggregate
object (14). One or more facet objects (28) that extend a functionality of
the primary facet object (16) are added to the aggregate object (14). The
particular facet objects (28) linked to the aggregate object (14) is
located that has a class that equals or extends a requested class. A
reference to the particular facet object (28) is returned and the
particular facet object (28) is invoked using the returned reference.
Um método para dinâmicamente estender a funcionalidade de um objeto sem modificar o código executável inclui as etapas primeiramente de identificar um objeto existente como um objeto preliminar do facet (16) e de criar um objeto agregado (14). O objeto preliminar do facet (16) é ligado ao objeto agregado (14). Um ou os mais objeto do facet (28) que estendem uma funcionalidade do objeto preliminar do facet (16) é adicionado ao objeto agregado (14). Os objetos particulares do facet (28) ligados ao objeto agregado (14) são encontrados que tem uma classe que iguale ou estenda uma classe pedida. Uma referência ao objeto particular do facet (28) é retornada e o objeto particular do facet (28) é invocado usando a referência retornada.