Although any duplication like this should ring warning
bells in developer??™s minds, the dangers here are signi?¬?cantly less than if such code
were handwritten. As the code will not be edited by hand, we avoid the problems of
copy by value such as loss of synchronization.
Using copy by reference in this way in a modeling tool may however be simply
perpetuating a poor solution. In textual program languages, a name was the best
available way to refer to an existing element. The atomic elements that programmers
and compilers worked with were characters, and the next largest element was the ?¬?le.
In a modeling tool, we have at least characters, properties, objects, and graphs. Each of
these has its own unique identity, regardless of its contents or any part of that content
we consider its name. When a modeler reuses an element in a model, he most likely
simply selects the existing element directly. The reference can thus easily and
permanently be made to be to that particular element.
Modeling tools thus allowan even purer form of copy by reference: we can call this
copy by direct reference. Since modeling tools also support the older form, we can call
that copy by name reference. As the direct references remove many of the problems of
name references, most reuse will happen that way.
The only bene?¬?t of name references over direct references is the extra level of
indirection provided by the name.
Pages:
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769