In an object oriented computer system, one or more run-time extensible
items are defined that may be dynamically reconfigured as required to
support different interfaces at run-time. The behavior associated with
these interfaces is supported by one or more extensions owned by the
extensible item. Each extension class has a corresponding method table
that is shared among instances of the extension class and that correlates
the methods defined on the extension class to method node objects that
carry out the method. A method repository is a static object that is
created at run-time to correlate extensions to their corresponding method
tables. When a client invokes an invokeMethod( ) method on an extensible
item, specifying the name of the method to be invoked, the extensible item
cycles through its extensions, from newest to oldest, looking for an
extension that supports the named method. Each extension examines the
method repository to see if the method repository contains a method table
corresponding to the extension class. If not, a method table corresponding
to the extension class is created and placed in the method repository.
When an extension is found that supports the named method, a method node
that corresponds to the named method is returned. The method node then
invokes the named method on the extension.
В ориентированном предмете определена система компьютера, one or more раздвижные детали продолжитеные по времени которые могут dynamically быть заново скомпонованы как необходимо, что поддержали по-разному поверхности стыка на продолжительности времени. Поведение связало с этими поверхностями стыка поддержано one or more выдвижениями имеемыми раздвижным деталем. Каждый тип выдвижения имеет соответствуя таблицу метода поделены среди примеров типа выдвижения и сопоставляет методы определенные на типе выдвижения к предметам узла метода уносят метод. Архив метода будет статическим предметом создан на продолжительности времени для того чтобы сопоставить выдвижения к их соответствуя таблицам метода. Когда клиент invokes метод invokeMethod() на раздвижном детале, определяя имя метода, котор нужно invoked, раздвижной деталь задействует через свои выдвижения, от самой новой к самой старой, смотрящ для выдвижения которое поддерживает названный метод. Каждое выдвижение рассматривает архив метода для того чтобы увидеть если архив метода содержит таблицу метода соответствуя к типу выдвижения. If not, таблица метода соответствуя к типу выдвижения создана и помещена в архиве метода. Когда выдвижение найдено поддерживает названный метод, узел метода который соответствует к названному методу возвращен. Узел метода после этого invokes названный метод на выдвижении.