The '''Controller''' pattern assigns the responsibility of dealing with system events to a non-[[User Interface|UI]] class that represent the ovearlloverall system or a [[use case]] scenario. A use case controller should be used to deal with ''all'' system events of a use case, and may be used for more than one use case (for instance, for use cases ''Create User'' and ''Delete User'', one can have one ''UserController'', instead of two separate use case controllers).