通过 DAOFactory 的泛型写法来演示Java泛型的特殊用法

本文介绍了一种使用Java泛型的DAO工厂实现方式,通过抽象工厂模式降低系统耦合度,支持不同类型的DAO实例创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过 DAOFactory 的泛型写法来演示Java泛型的特殊用法

 

小型项目中常常都没有用三方持久化框架,而大都是用公司或自行依据DAO模式封装的一些组件来完成数据库持久化动作,并且,通常为了更具可扩展性,常常使用抽象工厂模式来解耦合。

 

一、先看代码

1、简单工厂代码

 

2、抽象工厂代码

 

3、客户端代码

 

二、然后说明

 

1、简单工厂代码中使用反射机制构建外部指定的实现类来创建接口 IGeneralDAO 和 IGenericsDAO 的实例。这样以来,我们可以将工厂制造的产品类型放到外部来配置以降低耦合度。其中,有两个抽象方法实现,方法签名为 public IGeneralDAO buildGeneralDAO() 的这个方法没有使用泛型机制,而方法签名为 public IGenericsDAO<T> buildGenericsDAO() 的这个方法则使用了泛型机制。

 

2、抽象工厂代码中名为 newInstance 的静态方法使用了泛型机制。请注意泛型的写法。

 

3、客户端代码中则演示了用相同的抽象工厂,如何构建泛型和非泛型的方法。需要注意的是:

与下面这种写法是不一样的(这段代码无法通过编译,原因在于这时AbstractDAOFactory.newInstance().buildGenericsDAO()返回的是IGenericsDAO<Serializable> 类型,而非IGenericsDAO<AccountPOJO> ):

 

怎么样?感觉类似的写法,效果却大不相同。慢慢体会吧!

 

By CodingMouse

2010年1月11日

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值