Symbian3/PDK/Source/GUID-C7F3EDA1-B935-5F5F-AFD4-A3CABA0C031C.dita
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
equal deleted inserted replaced
11:5072524fcc79 12:80ef3a206772
    30 identifiable extensions to the existing interface classes. The extension interfaces
    30 identifiable extensions to the existing interface classes. The extension interfaces
    31 supported by each plug-in can be determined and used appropriately. </p> <p>The
    31 supported by each plug-in can be determined and used appropriately. </p> <p>The
    32 images below illustrate how the interface extensibility feature works. </p> <p>The
    32 images below illustrate how the interface extensibility feature works. </p> <p>The
    33 class diagram shows the implementation of the original interface. </p> <fig id="GUID-C85FB42D-1EE5-508E-B81F-D96B8A8E23E7">
    33 class diagram shows the implementation of the original interface. </p> <fig id="GUID-C85FB42D-1EE5-508E-B81F-D96B8A8E23E7">
    34 <title>              Class diagram of the original interface            </title>
    34 <title>              Class diagram of the original interface            </title>
    35 <image href="GUID-7D78DFA8-301C-5A0C-9F83-7C4BBEAE34C2_d0e214701_href.jpg" placement="inline"/>
    35 <image href="GUID-7D78DFA8-301C-5A0C-9F83-7C4BBEAE34C2_d0e220721_href.jpg" placement="inline"/>
    36 </fig> <p>The next class diagram shows an example of the original class <b>CImplementationClass</b> supporting
    36 </fig> <p>The next class diagram shows an example of the original class <b>CImplementationClass</b> supporting
    37 two extensions . The extensions have been added to the <b>CExampleInterface</b> each
    37 two extensions . The extensions have been added to the <b>CExampleInterface</b> each
    38 using a different implementation methodology . </p> <p> <b>CExampleInterfaceExtended</b> requires
    38 using a different implementation methodology . </p> <p> <b>CExampleInterfaceExtended</b> requires
    39 no data and so has been added to the inheritance of the original plug-in <b>CImplementationClass</b> object. <b>MExampleInterfaceExtended2</b> shows
    39 no data and so has been added to the inheritance of the original plug-in <b>CImplementationClass</b> object. <b>MExampleInterfaceExtended2</b> shows
    40 how extensions can be realized in separate objects with their own data. </p> <fig id="GUID-B2D1AF5C-0789-5D9B-8EB1-13226C864D38">
    40 how extensions can be realized in separate objects with their own data. </p> <fig id="GUID-B2D1AF5C-0789-5D9B-8EB1-13226C864D38">
    41 <title>              Class diagram of the extended interface            </title>
    41 <title>              Class diagram of the extended interface            </title>
    42 <image href="GUID-DAF12BDB-5453-5DDD-ACBA-4C29AE448D87_d0e214730_href.jpg" placement="inline"/>
    42 <image href="GUID-DAF12BDB-5453-5DDD-ACBA-4C29AE448D87_d0e220750_href.jpg" placement="inline"/>
    43 </fig> <p>The extended interfaces should maintain the binary compatibility
    43 </fig> <p>The extended interfaces should maintain the binary compatibility
    44 by not changing the original interface class definition. The functional compatibility
    44 by not changing the original interface class definition. The functional compatibility
    45 should be maintained by incorporating interface extensions as optional. This
    45 should be maintained by incorporating interface extensions as optional. This
    46 allows the framework to function with original and extended plug-in implementations. </p> <p>To
    46 allows the framework to function with original and extended plug-in implementations. </p> <p>To
    47 accommodate interface extensibility, the following changes are applied to
    47 accommodate interface extensibility, the following changes are applied to