From: Mark S. <mar...@gm...> - 2008-11-10 01:04:38
|
Possibly my branches of a CoalCompany, and a MinorCompany are not required, given that some games (like 1824 allow a Coal Company to have Tokens, and 1837 provide no tokens to a Coal Company), and a Minor Company sometimes has a fixed-price, and sometimes a variable price. I just hate huge classes that distinguish based on flags. I do see that in the case of 1841 a company can start as a Minor or a Major Company. In this example, I would probably just keep these both as a ShareCompany, with a type flag set at creation time. With regards to transformations, examples being: 1. Minor Companies in 1824, 1835, 1837 merge to a Share Company, 2. 1856 where Share Companies in debt merge to the CGR, 3. Coal Companies in 1824 and 1837 are exchanged to other company shares 4. 1832 two major companies merge to a System I am sure there are more variations to this. I do see each of these transformations as more of an exchange of shares (except for the 1832 System creation). Trying to simply change the capabilities when it transforms is I feel the wrong approach. It makes an undo that much harder to accomplish. Besides, the exchanges don't all happen at the same time (Coal Company Certificate exchange at the owner's discretion, or Phase change requirement). When I came up with my hierarchy I was primarily focused on the games I currently own (1829, 1830, 1835, 1837, 1853, 1856, 1870). And since then many more sprang up. I do still feel building a basic hierarchy for companies makes sense. It allows separation of functionality. and allows the class hierarchy enforce some of the game mechanics (a company that is just a Train Company, cannot manipulate tokens, and if a Company is a Token Company, but not a Share Company cannot have certificates that have variable price). But I would be interested in what Brett & Erik have to say on the subject. I am sure they have discussed this in the past. |