V.8 Technical and Cross cutting Concepts
This section describes general structures and system-wide aspects. It also presents various technical solutions.
8.1 Dependencies between Modules
DokChess invites developers to experiment and to extend the engine (V 1.2 Quality Goals). In order to do so, the modules are loosely coupled. DokChess modules are implementations of Java interfaces. Java classes that require parts signal this with appropriate methods set"Module"("Interface" …). They don't take care of resolving a dependency, for instance, by using a factory. Instead, the client resolves the dependencies by creating suitable implementations with new and putting them together with setter methods, also known as Dependency Injection (DI).
Interfaces and DI enable alternative implementations within DokChess. Adding functionality with the help of the decorator pattern (Gamma+94) is possible as well. Furthermore, aspect-oriented programming (AOP) solutions, which rely...