Java Spring Loose Ano
O conceito orientado a objetos é um bom design para dividir o sistema em um grupo de objetos reutilizáveis. No entanto, quando o sistema fica maior, especialmente em projetos Java, enormes dependências de objetos sempre serão bem acopladas para dificultar o gerenciamento ou o modificação dos objetos. Nesse caso, todas as dependências de objetos podem ser gerenciadas de maneira fácil e eficiente usando a estrutura de mola como um módulo principal.
Exemplo de gerador de saída
Vejamos um exemplo, suponha que seu projeto tenha uma saída de função no formato CSV ou JSON. Seu código pode parecer o seguinte exemplo:
Arquivo: ioutputGenerator.java Saída Generator Interface pacote com.yiibai.output.impl; import com.yiibai.output.ioutputGenerator; public class csvOutputGenerator implementa ioutputGenerator {public void generateoutput () {System.out.println ("CSV Output Gerator"); }} Arquivo: jsonOutputGenerator.java Um gerador de saída JSON é usado para implementar a interface iOutputGenerator. pacote com.yiibai.output.impl; import com.yiibai.output.ioutputGenerator; public class JsonOutputGenerator implementa ioutputGenerator {public void generateOutput () {System.out.println ("JSON Output Gerator"); }} Existem várias maneiras de chamar o ioutputGenerator e como usar a mola para evitar que os objetos estivessem intimamente ligados um ao outro.
1. O método 1 é chamado diretamente
A maneira normal é chamá -lo diretamente.
pacote com.yiibai.common; importar com.yiibai.output.ioutputGenerator; importar com.yiibai.output.impl.csvoutputgenerator;/ * http://www.manongjc.com/article/1602.html */public class App { CsvOutputGenerator (); output.GeReReOutput (); }}Existem problemas
Dessa forma, o problema é que a "saída" é fortemente acoplada ao CSVOutputGenerator, e todas as alterações geradas pela saída podem envolver alterações de código. Se este código estiver disperso em todo o seu projeto, todas as alterações geradas pela saída farão com que você sofra.
Método 2 chame com uma classe auxiliar
Talvez você queira criar uma classe auxiliar para implementar toda a saída dentro da classe.
pacote com.yiibai.output; import com.yiibai.output.ioutputGenerator; importar com.yiibai.output.impl.csvoutputGenerator; classe pública outputhelper {ioutputGenerator outputGenerator; public outputhelper () {outputGenerator = new CSVOutputGenerator (); } public void generateOutput () {outputGenerator.GeReRateOutput (); }} Chame através da classe ajudante
pacote com.yiibai.common; import com.yiibai.output.outputhelper; public class App {public static void main (string [] args) {outputhelper Output = new Outputhelper (); output.GeReReOutput (); }}Existem problemas
Isso parece mais elegante do que antes, apenas gerenciando uma classe auxiliar, mas a classe auxiliar ainda está fortemente acoplada ao CSVOutputGenerator, e todas as alterações geradas pela saída ainda envolvem pequenas alterações de código.
Método 3 Mola
Nesse caso, a injeção de dependência da mola (DI) é uma boa escolha. A mola permite que a geração de saída seja vagamente acoplada ao gerador de saída.
A classe Outputhelper tem modificações menores.
pacote com.yiibai.output; import com.yiibai.output.ioutputGenerator; public class Outputhelper {ioutputGenerator outputGenerator; public void generateOutput () {outputGenerator.GeReRoutOutput (); } public void setOutputGenerator (ioutputGenerator OutputGenerator) {this.OutputGenerator = outputGenerator; }} Crie um arquivo de configuração do Spring Bean e declare todas as dependências de objetos Java aqui.
<!-spring-common.xml-> <feijão xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-stance" xsi: schemalo Cation = "http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id = "outputhelper"> <propriedade name = "outputGenerator" ref = "csvOutputGenerator" /> < /bean> <bean id = "csvoutputGenerator" /> <bean id = "jsonOutGenerator" /> < /beans>
Ligue para a primavera
pacote com.yiibai.common; importar org.springframework.context.applicationContext; importar org.springframework.context.support.classPathXMLApplicationContext; import com.yiibai.outputhStuts; ClassPathXMLApplicationContext (new String [] {"spring-common.xml"}); Outputhelper Output = (Outputhelper) context.getBean ("Outputhelper"); output.GeReReOutput (); }} Agora, basta alterar o arquivo XML da primavera usando um gerador de saída diferente. Modificar apenas os arquivos XML da primavera sem modificações sem censura significa menos erros.
Conclusão: Com a estrutura da mola - essa injeção de dependência (DI) é útil para o gerenciamento de dependência de objetos, tornando -o mais elegante, altamente flexível e fácil de manter no gerenciamento de desenvolvimento de grandes projetos de Java.
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!