Question

In the real world, objects are often classified in orthogonal ways, rather than in the tree-like hierarchy of Smalltalk. For example, the bald eagle and the condor are both birds of prey, but one is a North American bird and the other a South American bird. The robin is also a North American bird but is not a bird of prey. These two distinguishing characteristics are orthogonal in that neither can logically be said to be a superset of the other. Thus, forcing the classification into a treelike structure is either unnatural, inefficient, or both. How might Smalltalk objects be classified in orthogonal ways? What problems does this introduce for the inheritance mechanism? How might these problems be overcome $$ \begin{array}{c|c|c} & {\begin{array}{c} \text { Bird } \\ \text { of } \\ \text { Prey } \end{array}} & {\begin{array}{c} \text { Not a Bird } \\ \text { of } \\ \text { Prey } \end{array}} \\ \begin{array}{c} \text { North } \\ \text { American } \end{array} & \begin{array}{c} \text { Bald } \\ \text { Eagle } \end{array} & \text { Robin } \\ \begin{array}{c} \text { South } \\ \text { American } \end{array} & \text { Condor } & ? \end{array} $$

   In the real world, objects are often classified in orthogonal ways, rather than in the tree-like hierarchy of Smalltalk. For example, the bald eagle and the condor are both birds of prey, but one is a North American bird and the other a South American bird. The robin is also a North American bird but is not a bird of prey. These two distinguishing characteristics are orthogonal in that neither can logically be said to be a superset of the other. Thus, forcing the classification into a treelike structure is either unnatural, inefficient, or both.
How might Smalltalk objects be classified in orthogonal ways? What problems does this introduce for the inheritance mechanism? How might these problems be overcome
$$
\begin{array}{c|c|c}
& {\begin{array}{c}
\text { Bird } \\
\text { of } \\
\text { Prey }
\end{array}} & {\begin{array}{c}
\text { Not a Bird } \\
\text { of } \\
\text { Prey }
\end{array}} \\ \begin{array}{c}
\text { North } \\
\text { American }
\end{array} & \begin{array}{c}
\text { Bald } \\
\text { Eagle }
\end{array} & \text { Robin } \\ \begin{array}{c}
\text { South } \\
\text { American }
\end{array} & \text { Condor } & ?
\end{array}
$$
Show more…
A little Smalltalk
A little Smalltalk
Timothy Budd 1st Edition
Chapter 1, Problem 4 ↓

Instant Answer

verified

Step 1

In the given example, we have two dimensions - "Bird of Prey" and "North American". We can create classes for each combination of these dimensions, such as "NorthAmericanBirdOfPrey", "NorthAmericanNotBirdOfPrey", "SouthAmericanBirdOfPrey", and so on. However,  Show more…

Show all steps

lock
AceChat toggle button
Close icon
Ace pointing down

Please give Ace some feedback

Your feedback will help us improve your experience

Thumb up icon Thumb down icon
Thanks for your feedback!
Profile picture
In the real world, objects are often classified in orthogonal ways, rather than in the tree-like hierarchy of Smalltalk. For example, the bald eagle and the condor are both birds of prey, but one is a North American bird and the other a South American bird. The robin is also a North American bird but is not a bird of prey. These two distinguishing characteristics are orthogonal in that neither can logically be said to be a superset of the other. Thus, forcing the classification into a treelike structure is either unnatural, inefficient, or both. How might Smalltalk objects be classified in orthogonal ways? What problems does this introduce for the inheritance mechanism? How might these problems be overcome $$ \begin{array}{c|c|c} & {\begin{array}{c} \text { Bird } \\ \text { of } \\ \text { Prey } \end{array}} & {\begin{array}{c} \text { Not a Bird } \\ \text { of } \\ \text { Prey } \end{array}} \\ \begin{array}{c} \text { North } \\ \text { American } \end{array} & \begin{array}{c} \text { Bald } \\ \text { Eagle } \end{array} & \text { Robin } \\ \begin{array}{c} \text { South } \\ \text { American } \end{array} & \text { Condor } & ? \end{array} $$
Close icon
Play audio
Feedback
Powered by NumerAI
Need help? Use Ace
Ace is your personal tutor. It breaks down any question with clear steps so you can learn.
Start Using Ace
Ace is your personal tutor for learning
Step-by-step explanations
Instant summaries
Summarize YouTube videos
Understand textbook images or PDFs
Study tools like quizzes and flashcards
Listen to your notes as a podcast
Continue solving this problem
Create a free account to:
  • View full step-by-step solution
  • Ask follow-up questions with Ace AI
  • Save progress and study later
Continue Free
Numerade

Get step-by-step video solution
from top educators

Continue with Clever
or



By creating an account, you agree to the Terms of Service and Privacy Policy
Already have an account? Log In

A free answer
just for you

Watch the video solution with this free unlock.

Numerade

Log in to watch this video
...and 100,000,000 more!


EMAIL

PASSWORD

OR
Continue with Clever