Padrão do Objeto Global
Introdução
O Padrão do Objeto Global é um padrão de design emergente que permite que um objeto seja acessível globalmente em um sistema, promovendo a reutilização e a consistência de dados. Esse padrão é particularmente útil em aplicações que requerem um único ponto de acesso a um conjunto de dados ou funcionalidades, como configurações de sistema ou serviços compartilhados. Ao implementar o Padrão do Objeto Global, os desenvolvedores podem evitar a duplicação de código e garantir que todas as partes do sistema utilizem a mesma instância de um objeto.
Benefícios do Padrão do Objeto Global:
-
Acesso Global: Permite que um objeto seja acessado de qualquer parte do código, facilitando a interação entre diferentes componentes do sistema.
-
Consistência de Dados: Garante que todos os componentes utilizem a mesma instância, evitando problemas de inconsistência.
-
Facilidade de Manutenção: Alterações no objeto global são refletidas em toda a aplicação, simplificando a manutenção e atualização do código.
Metodologia
Na aplicação, utilizamos o Padrão do Objeto Global para gerenciar a configuração do sistema e os serviços compartilhados. Criamos uma classe Config
que encapsula as configurações globais e um singleton para garantir que apenas uma instância dessa classe seja criada. Essa instância é acessada em diferentes partes da aplicação, permitindo que todos os componentes leiam e modifiquem as configurações conforme necessário.
A implementação do padrão foi realizada da seguinte forma:
- Classe Config: Define as propriedades e métodos para acessar e modificar as configurações globais.
- Singleton: Implementa o padrão singleton para garantir que apenas uma instância da classe
Config
exista. - Acesso Global: Fornece métodos estáticos para acessar a instância global de
Config
, permitindo que qualquer parte do código interaja com as configurações.
Para ilustrar o funcionamento do padrão, foi criado um exemplo prático que demonstra a configuração e o uso de um serviço compartilhado.
Implementação
class Config:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super(Config, cls).__new__(cls)
cls._instance.settings = {}
return cls._instance
def set(self, key, value):
self.settings[key] = value
def get(self, key):
return self.settings.get(key, None)
# Uso do Padrão do Objeto Global
config = Config()
config.set('database_url', 'sqlite:///:memory:')
print(config.get('database_url')) # Acesso global à configuração
Conclusão
A implementação do Padrão do Objeto Global proporcionou uma maneira eficiente de gerenciar configurações e serviços compartilhados em nossa aplicação. Através da centralização das configurações, conseguimos garantir a consistência e facilitar a manutenção do código. O padrão também promoveu uma melhor organização, permitindo que novos desenvolvedores compreendam rapidamente a estrutura do sistema.
Bibliografia
python-patterns.guide. (n.d.). The Global Object Pattern. [online] Available at: https://python-patterns.guide/python/module-globals/#the-global-object-pattern [Accessed 25 Jul. 2024].
Histórico de Versão
Versão | Data | Descrição | Autor(es) | Revisor(es) |
---|---|---|---|---|
1.0 |
25/07/2024 | Criação do documento | João Lucas | Papa |