Unity Programming Design Patterns