# Functions
GetInstance returns the singleton instance.
NewActiveObject creates a new ActiveObject.
NewBarrier creates a new Barrier with the given count.
NewDatabase creates a new Database instance.
NewProxy creates a new Proxy.
NewWorker creates a new Worker with the given id and barrier.
# Structs
ActiveObject encapsulates its own thread of control and executes methods asynchronously.
Barrier represents a synchronization barrier.
Database represents a dummy database.
MethodRequest encapsulates a method call along with its arguments.
Proxy acts as a wrapper around the ActiveObject and forwards method calls to it.
Singleton represents a singleton object.
Worker represents a worker goroutine.