设计模式之一----依赖注入

前端之家收集整理的这篇文章主要介绍了设计模式之一----依赖注入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1,为什么会有依赖注入的设计模式?

@H_502_11@public class PersistenceManager{

@H_502_11@public void store(Object object){

@H_502_11@DataSource dataSource=...;

@H_502_11@Connection connection=dataSource.getConnection();

@H_502_11@......//把对象存储到数据库

@H_502_11@}

@H_502_11@}

@H_502_11@通常在javaee中,获得一个数据源常用方法是通过一次JNDI查询

@H_502_11@dataSource dataSource=null;

@H_502_11@context=new InitialContext();

@H_502_11@dataSource=(DataSource)context.lookup("java:/comp/env/jdbc/myDataSource");

@H_502_11@@H_502_11@首先,可以看出这个类依赖这个数据源类

@H_502_11@可以看出进行一次JNDI查询,需要一个JNDI名,但是不能保证用到PersistenceManager这个类的应用程序所提供的JNDI名是一样的,则此时重用性就不能得到保证。所以才会有依赖注入的设计模式。

2,依赖注入原理:把依赖关系注入到字辈组件中,就是把一个组件设计成能为被依赖的那个组件提供入口,就像插座给插头提供插孔。

3,依赖注入的主要方式:

@H_502_11@(1)专门提供一个能够接受那个依赖关系的构造器

@H_502_11@

@H_502_11@public class PersistenceManager{

@H_502_11@private DataSource dataSource;

@H_502_11@public PersistenceManager(DataSource dataSource){

@H_502_11@this.dataSource=dataSource;

@H_502_11@}


@H_502_11@public void store(Object object){

@H_502_11@Connection connection=dataSource.getConnection();

@H_502_11@......//把对象存储到数据库

@H_502_11@}

@H_502_11@}

@H_502_11@ (2)通过setter方法

@H_502_11@

@H_502_11@public class PersistenceManager{

@H_502_11@private DataSource dataSource;

@H_502_11@public void setDataSource(DataSource dataSource){

@H_502_11@this.dataSource=dataSource;

@H_502_11@}


@H_502_11@public void store(Object object){

@H_502_11@Connection connection=dataSource.getConnection();

@H_502_11@......//把对象存储到数据库

@H_502_11@}

@H_502_11@}

@H_502_11@ (3)通过实现接口的方法

猜你在找的设计模式相关文章