Este artigo descreve a função do adaptador de energia nos aplicativos de modo adaptador Java. Compartilhe -o para sua referência, como segue:
1. Definição do padrão
Existem dois modos de adaptador
1 Modo adaptador de objeto Neste modo adaptador, o adaptador contém uma entidade física do objeto de classe que ele envolve.
Modo adaptador Classe 2 Neste modo adaptador, o adaptador herda da classe implementada.
2. Exemplos do modelo
1 Análise de padrão
Emprestamos um adaptador de energia a lápis para ilustrar esse modo.
Adaptador de energia de laptop de potência CA já existente
2 modelagem estática do modo adaptador
3 exemplos de código
3.1 Estabelecimento de fonte de alimentação abstrata
pacote com.demo.power;/** * Classe de base de energia * * @author * */public abstract classe abbasepower {// Valor de tensão Power de flutuação privada; // unidade private string unit = "v"; // Método de construção public abbasePower (Float Power) {this.power = Power; } public float getPower () {retorna poder; } public void setPower (Float Power) {this.power = Power; } public string getUnit () {return Unit; } public void setUnit (unidade de string) {this.unit = unit; }}3.2 interface de energia 220V
pacote com.demo.power.v220;/** * 220V Interface de energia * * @Author * */interface pública ipower220 {// 220V AC PRIMEIRA PRIMENTO PUBLICO VOAD OUTPUT220V ();}3.3 Classe de implementação da fonte de alimentação 220V
pacote com.demo.power.v220; importar com.demo.power.absbasepower;/** * 220V Fonte de alimentação * * @author * */public class Power220 estende o absBasePow } // 220V Power Output public void Output220V () {System.out.println ("---- Este é [" + this.getPower () + this.getUnit () + "] Power! ..."); }}3.4 interface de energia 12V
pacote com.demo.power.v12;/** * interface de energia 12V * * @Author * */interface pública ipower12 {// 12V Fonte de alimentação PRIMENTO PUBLICO VOID OUTPUT12V ();}3.5 Classe de implementação da fonte de alimentação de 12V
pacote com.demo.power.v12; importar com.demo.power.absbasepower;/** * fonte de alimentação de 12V normal * * @author * */classe pública Power12 estende o absBasePow } // 12V saída de energia public void output12v () {System.out.println ("--- Isso é [" + this.getPower () + this.getUnit () + "] Power! ..."); }}3.6 Adaptador de objeto de energia 12V
pacote com.demo.adapter; importar com.demo.power.absBasePower; importar com.demo.power.v12.ipower12;/** * adaptador de energia (implementa a interface de objeto de destino, a queda de objeto de alvo, a abdas de popa de 12v) * * @author */public AdaptPowerPower12 Sple. // O método de construção do adaptador passa o objeto a ser convertido em adaptador público12 (absbasePower abbasePower) {this.absBasePower = abbasePower; } // Implementar o método do objeto de destino public void output12v () {// Obtenha o valor de energia externo flutuante powerfloat = this.absBasePower.getPower (); // Execute a conversão de energia if (powerfloat == 380) {// 380V Power Conversão Powerfloat = Powerfloat / 31.67f; } else if (powerfloat == 220) {// 220V Power Conversão Powerfloat = Powerfloat / 18.33f; } else if (powerfloat == 110) {// 110V Power Conversão powerfloat = powerfloat / 9.17f; } else {System.out.println ("---- não pode se adaptar ao poder! ..."); retornar; } // Processar o resultado da conversão Powerfloat = (int) (Powerfloat * 10) / 10.0f; System.out.println ("---- este é [" + powerfloat + this.absBasePower.getUnit () + "] Power! ..."); }}3.7 Adaptador de energia 12V
pacote com.demo.adapter; importar com.demo.power.absBasePower; import com.demo.power.v12.ipower12;/** * adaptador de energia (implementa a interface do objeto de destino, ou seja, o MODETER1ATER1ATER12 EXTENSTERFORTENTENCTENTRESPENTRESTENTENSBOTER1ATER1ATERATETER1ATROPTONTENTRESTENTRESTENTRESTENTRESTENTRESTENTERSBERTEMBERTEMBERTEMBERTEMBERTEMBERTEMTER1ATER1ATER1ATROPTOLTETROPTOLTETROPTOLTETROPTERTETROPTERTENTER12 ExtrensFeTring) o objeto a ser convertido em adaptador público12ext (absbasePower abbasePower) {super (abbasepower.getPower ()); } // Implementar o método do objeto de destino @Override public void output12v () {// Obter valor externo de potência float powerfloat = this.getPower (); // Execute a conversão de energia if (powerfloat == 380) {// 380V Power Conversão Powerfloat = Powerfloat / 31.67f; } else if (powerfloat == 220) {// 220V Power Conversão Powerfloat = Powerfloat / 18.33f; } else if (powerfloat == 110) {// 110V Power Conversão powerfloat = powerfloat / 9.17f; } else {System.out.println ("---- não pode se adaptar ao poder! ..."); retornar; } // Processar o resultado da conversão Powerfloat = (int) (Powerfloat * 10) / 10.0f; System.out.println ("---- este é [" + powerfloat + this.getUnit () + "] poder! ..."); }}3.8 Adaptador de teste
pacote com.demo; importação com.demo.adapter.adapterPower12; importar com.demo.adapter.adapterPower12ext; importar com.demo.power.v12.iPower12; import.demo.power.v12.power12; import.demo.power.v220.Demo.Demo.Power.v12.power12; import.demo.power.v220.power220; * @param args */ public static void main (string [] args) {// primeiro geramos um objeto de fonte de alimentação de 220V! Power220 Power220 = new Power220 (); Power220.Output220V (); // Em seguida, estamos gerando um objeto de fonte de alimentação de 12V! Ipower12 Power12 = new Power12 (); Power12.Output12V (); // Finalmente, usamos o adaptador de energia para converter a fonte de alimentação de 220V em uma fonte de alimentação de 12V! System.out.println ("/n ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("----- Adaptador de classe Conversão do adaptador termina!");3.9 Resultados da operação
---- Esta é a fonte de alimentação [220.0V]! ...
---- Esta é a fonte de alimentação [12.0V]! ...
---- O adaptador de energia está sendo convertido ...
---- Esta é a fonte de alimentação [12.0V]! ...
--- A conversão do adaptador de energia acabou!
---- adaptador adaptador está sendo convertido ...
---- Esta é a fonte de alimentação [12.0V]! ...
---- A conversão do adaptador adaptador de classe termina!
3. Princípios de design
1Use combinações de objetos, programação abstrata orientada a interface e abstrata
2 Princípio "Open and Close"
4. Use ocasiões
1 Quando a estrutura do sistema de software precisa ser atualizada ou expandida e não deseja afetar a operação estável do sistema original
2 Quando a diferença entre as classes de conversão não é muito grande
3 Quando você deseja criar uma classe reutilizável que possa funcionar em conjunto com outras classes não relacionadas ou imprevisíveis
5. Diagrama de classe estática do modo adaptador de classe e modo adaptador de objeto
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.