|
|
(17 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | Navigation shortcuts: [[Wiki users]]:[[User:Jenny Harlow|Jenny Harlow]]
| |
− | ----
| |
| | | |
− | = Project =
| |
− | Redesigning [part of] the Java Collections Framework
| |
− |
| |
− | == Introduction ==
| |
− | This project will attempt to redesign part of the [http://download.oracle.com/javase/tutorial/collections/index.html Java Collections Framework] from the point of view of 'if we were starting again, what might we do'. The whole framework is huge, and includes many specialised features such as the [http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/package-summary.html java.util.concurrent] classes. This project will focus on what we might consider to be the main everyday usage collections - the ones that come into almost everything we might want to write: lists, sets, maps.
| |
− |
| |
− | == Background ==
| |
− | In COSC324 Wal emphasised the use of Collections for efficient programming. He pointed out some of the ways in which the Java Collections Framework uses design patterns (wrappers, [[Iterator|iterators]], [[Factory Method|factory methods]]), but also some of the glaring Arrghghgs (the OO term seems to be [[Antipatterns]]) that there seem to be in the current design. Naturally we all nodded wisely and agreed that it is just terrible ... It's easy to criticise - can I do any better?
| |
− |
| |
− | My initial thinking about this project made me realise that a major issue for Collections is contracts: Collections are for other programmers to use and so using and abiding by [[Design by contract|design by contract]] has to be just as important, if not more so, as conspicuous display of [[Gang of Four 1995|GoF]]-authorised design patterns.
| |
− |
| |
− | = Design Study =
| |
− |
| |
− | == Requirements ==
| |
− |
| |
− | == Constraints ==
| |
− |
| |
− |
| |
− | == Initial Design ==
| |
− |
| |
− |
| |
− | === Diagram ===
| |
− |
| |
− |
| |
− | === Description of Classes ===
| |
− |
| |
− | == Design Critique ==
| |
− |
| |
− | === Initial Design ===
| |
− |
| |
− |
| |
− | == Design Improvements ==
| |
− |
| |
− |
| |
− | = Files =
| |
− |
| |
− |
| |
− | = Acknowledgements =
| |
− |
| |
− | --[[User:Jenny Harlow|Jenny Harlow]] 11:24, 9 August 2010 (UTC)
| |