Padrões Grasps - DesenhoMaster2017/SpaceShooter GitHub Wiki
1. Criador
O padrão do Criador delega a responsabilidade de se criar instâncias de classes. Aplicar esse padrão corretamente pode reduzir o número de linhas de código escritas e deixar o código mais limpo e fácil de utilizar. Esse padrão é aplicado uniformemente pelo código, segundo o bom senso e experiência do grupo.
2. Alta coesão
Dupla dinâmica do Baixo Acoplamento, um código com Alta Coesão garante que cada classe execute apenas ações intimamente relacionadas, deixando ações menos relacionadas para outras classes se especializarem. Mais comentários em Alta Coesão a seguir...
3. Baixo acoplamento
O Baixo Acoplamento facilita a reusabilidade de código, modularizando devidamente a lógica envolvida.
A dupla de Baixo Acoplamento e Alta Coesão é aplicada sempre que possível pelo código inteiro, mas pode-se destacar a classe Command , que, naturalmente, aplica o GOF Command, especializando e desacoplando intensamente a criação e execução de ações por Sprites do jogo.
Também é aplicado nas classes GameEntity e GameScene, desacoplando e modularizando suas respectivas subclasses.
4. Controlador
O Controlador é uma classe que controla o fluxo de dados e as ações recebidas e realizadas por uma outra classe, aliviando essa responsabilidade da mesma.
Sendo o jogo (como qualquer jogo) densamente dependente de interfaces gráficas, muitas classes controladoras foram distribuídas pelo código para controlar dados, eventos e ações que ocorrem entre os muitos elementos visuais.
5. Polimorfismo
Polimorfismo é tabém um prinicípio da Orientação a Objetos e foi largamente utiliza no código (em praticamente todas as classes), podendo ser citada as classes Command, GameEntity, GameScene, ObjectPool, CountDownTimer, entre outras.
6. Variação protegida
Análogo ao Encapsulamento da Orientação a Objetos, foi usado uniformemente pelo código, segundo o bom senso dos programadores. Por exemplo, a classe MoveCommand protege o método moveActor de uso e modificação externa, utilizando-se do identificador de acesso 'private'. Assim, o método se torna apenas de uso interno.
7. Especialista na informação
Trata-se de delegar responsabilidades a uma classe que tenha informações suficientes para cumpri-las. Basicamente, dar as devidas responsabilidades para uma classe em que "faça sentido" possuí-las. É intimamente associado ao Baixo Acoplamento e Alta Coesão para criar código de boa qualidade. O padrão está uniformemente aplicado pelo código, segundo o bom senso dos programadores.