-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
20 lines (14 loc) · 1.05 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Hi guys,
Thanks for asking me to do the test. It was actually pretty fun :)
I've tried to make the implementation as extensible as possible. So, you can easily:
- Add new types of actions by Implementing IActionVisitor
- Add new types of inputs and outputs by implementing and wiring in IActionInputStream, IBoardStateProvider and IGameStateWriter
The full integration tests can be found in "ApplicationTest" and some short usage instructions can be found in "Application"
Thought I'd reuse the classes that were in the original bundle :)
Notes:
* I preface all my interfaces with "I" because that's what my current team does - this is more of a force of habit than
a deeply held belief :)
* I'm not super happy with some of the mutability of the objects in my implementation. I think given more time I would
make Ship immutable, and implement some defensive copying elsewhere in the program. As it stands someone could implement
an evil IActionVisitor that could maintain references to some of the internal objects and mess with the state. Which just
wouldn't be very nice