Representação da migração do banco de dados Oracle para MySQL usando o padrão de projeto (design pattern) Adapter.
O padrão Adapter permite que objetos incompatíveis entre si passaem a ser incompatíveis. este proejto busca demonstrar esta adaptação de um objeto com outro, de modo a desenvolver os mesmo métodos que lhe são necessários de modo que se possa substituir uma classe, que representa o BD Oracle, por outra, que representa o BD MySQL.
Na classe de teste (ComutadorDeConexao) tem-se três conexões ao banco de dados: a primeira é um acesso de conexão com o banco Oracle, onde se estabelece normalmente.
ConexaoBDconexao1 = newOracle();
conexao1.insert();Na segunda, a conexão falha pois o método insert() não é o mesmo método utilizado pela classe MySQL.
ConexaoBDconexao2 = newMySQL();
conexao2.insert();Na terceira, tem-se a conexão ao banco MySQL e o uso do método insert() pois a classe AdaptadorMySQL cumpre seu papel de adaptar os métodos da classe MySQL aos métodos da interface ConexaoBD.
ConexaoBDconexao3 = newAdaptadorMySQL(newMySQL());
conexao3.insert();Executando o código é possível perceber que tanto os objetos conexao1 e conexao3 conseguem acionar o mesmo método para inserir dados em bancos diferentes.
Saída no console:
Insert no BD Oracle
Insert no BD MySQL