2008 Exam answers
From CSSEMediaWiki
(Difference between revisions)
(→Question 1) |
(→Question 1) |
||
Line 4: | Line 4: | ||
**'''Violations:''' name unknown; something related to a class capturing behavior as well as holding data | **'''Violations:''' name unknown; something related to a class capturing behavior as well as holding data | ||
* Replace Stock class with CompanyStock and OwnedStock. These classes will not share a common super class as they differ greatly in what they represent. | * Replace Stock class with CompanyStock and OwnedStock. These classes will not share a common super class as they differ greatly in what they represent. | ||
+ | **'''Violations:''' [[Single responsibility principle]] | ||
+ | * Broker and StockHolder should both hold a reference to a ContactDetails object. Alternatively they could both inherit from a Person class, but if we favor composition over inheritance this would seem the less preferred solution. | ||
**'''Violations:''' [[Single responsibility principle]] | **'''Violations:''' [[Single responsibility principle]] |
Revision as of 00:20, 17 July 2009
Question 1
Possible improvements to the design:
- Replace the Pair class with a Transaction class and two subclasses CreditTransaction and DebitTransaction. These classes will contain the information that was contained in Pair, and any other behavior related to transactions which is likely to have leaked out into the rest of the system.
- Violations: name unknown; something related to a class capturing behavior as well as holding data
- Replace Stock class with CompanyStock and OwnedStock. These classes will not share a common super class as they differ greatly in what they represent.
- Violations: Single responsibility principle
- Broker and StockHolder should both hold a reference to a ContactDetails object. Alternatively they could both inherit from a Person class, but if we favor composition over inheritance this would seem the less preferred solution.
- Violations: Single responsibility principle