The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

associated - A simple demo for one-to-one associations from UML (in Perl) (/examples).

VERSION

1.00

SYNOPSIS

DESCRIPTION

Rumbaugh uses this simple example to illustrate a one-to-one association between a Country- and a City-object in ch. 3.2 of "Object Oriented Modelling".

The code may look clumsy and a little bit oversized for this simple problem. However the idea hopefully becomes evident: to access functions of other classes.

Associations are essential to come up with a compact and very powerful object-model (several distinct classes, with defined functionalities, with well established associations).

In this example the subroutine associate() assigns the Country- and the City-instances to link together country/city pairs. Running the debugger may produce results like this:

        DB<6> x $ci1
        0  City=HASH(0x81c6b3c)
           '_a_is_capital_from' => Country=HASH(0x81d04d0)
              '_a_has_capital' => City=HASH(0x81c6b3c)
                 -> REUSED_ADDRESS
              '_name' => 'Germany'
           '_name' => 'Berlin'
        DB<7> x $ci1->get_name
        0  'Berlin'
          DB<8> x $ci1->get_a_is_capital_from()->get_name()
        0  'Germany'

which is all right.

The general syntax to access functions from another associated class is:

        class1.association.function_of_class2

which translates into, e.g.:

        $ci3->get_a_is_capital_from()->greetings();

to call the greetings() function of the Country-class from the specific City-instance $ci3.

ENVIRONMENT

DIAGNOSTICS

BUGS

FILES

SEE ALSO

        perldoc City.pm
        perldoc Country.pm

AUTHOR

Name: Michael Schlueter

email: mschlue@cpan.org

COPYRIGHT

Copyright (c) 2000, Michael Schlueter. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.