Discussion Questions for Riel, Chapter 1
Other Questions
-
Riel writes that C++ does not draw a distinction between containment by
reference and assosiation through a referential attribute. Is this also
true in java? (monica)
-
Since a message must be passed in any case, why is it less complex to have
a third-party association class? IT seems that simply putting some
functions off into another non-obvious class doesn't necessarily simplify
the design. (Elijah)
-
From the "Recall" class example for car manufacturer where a third-party,
top-level class, emerges from one big class, what are the rules and
guidelines to make a class less complex? What are the justifications for
breaking up classes and how to control and relate the new resulting
classes? (Chayapan)
-
What are the reverse engineering case tools that Riel mentions on pg. 145?
Why doesn't C++ differentiate between containment by reference and
aossociation through referential attribute? (Mike C)
-
What would be a good example of many-to-many associaton relationship?
(Saugar)
-
Do associations always create situations in which one class is dependent on
the implementation of another, or does that only happen when there is a
choice between association and containment? (Lorelei)
-
Can a referential attribute association be shown on a UML diagram? (Mike
L.)
-
Are there any exceptions to Heuristic 7.1. (David D)
-
What is the difference between an "association" and a "simple association"?
(Gaurav)
-
Why are referential attributes given the same syntax as containment fields
in C++? Is there really a notion of containment through a pointer, in C++?
(John)
-
What are the uses of descriptive attributes apart from giving a class a
unique identity? (Saugar)
-
On pg. 143 Riel states that any relationships between two classes which is
not uses, containment or inheritance is called simple associations. Are
there other types of associations and if so how do they differ from simple
associations? (Mike C)
-
Do you think it is better to first think of the relationships between
classes in terms of assosiations and then refine these relationships or to
think of class relationships as uses, containment or inheritance and then
call any other relationship an association. (monica)
-
Do association classes contain anything more than plain old reference data?
(John)
-
Can you give a better definition for an Association? (David D)
-
In section 7.2 Reil mentions that C++ does not distinguish between
containment by reference and association through a referential
attribute. How does Java treat this issue? (Chayapan)
-
Why does C++ not draw a distinction between two very different object
oriented relationships, containment by reference and association through a
referential attribute? and I do not get why this should be a
problem. (Gaurav)
-
Doesn't creating a third class for an indirect uses relationship violate
earlier heuristics about keeping related behavior and data together? At
what point does a class become complex enough to justify splitting off some
of the behavior? (Lorelei)
-
what is the purpose of the heatFlowRegulator? Why can't the Furnace or Room
contain the functions of the heatFlowRegulator? (Elijah)
-
Doesn't association through a third-party class cause the creation of
practically empty classes? (Mike L.)
-
C++ does not distinguish the difference between referential attribute and
containment, what about Java? (Sheng)
-
Need more examples and practice about analyzing the difference between
containment and association relationship and how to make a choice in
certain cases. (Sheng)
-
What behaviors are implicitly covered by the "use" relationship as defined
in 7.1? (Eric)
-
In what ways do these behaviors differ from association relationships?
(Eric)
This document is available on the World Wide Web as
http://www.cs.grinnell.edu/~walker/courses/223.fa05/readings/riel-.shtml