【问题标题】:how to apply dependency injection in an inventory management system如何在库存管理系统中应用依赖注入
【发布时间】:2011-07-08 13:52:35
【问题描述】:
我想实现一个销售和库存管理系统,对如何在系统中应用依赖注入感到困惑。我想要一个使用数据库来持久化其数据的库存类,我应该有一个处理数据库连接的类,比如 DBConnectionManager,然后是一个使用 DBConnectionManager 并与数据库交互的数据库层 DBWrapper,然后充当两者之间的抽象层数据库和使用数据库的类,例如库存、用户、客户、销售。或者我应该在每个用户、客户、...类中编写 sql 代码。
【问题讨论】:
标签:
java
dependencies
dao
code-injection
inventory
【解决方案2】:
IMO,您应该为您的数据库活动/操作创建一个DAO 接口。此 DAO 接口将具有用于存储/检索数据的通用操作。然后你可以让类实现这个 DAO 接口;一类将启用数据库持久性,一类将启用基于文本文件的持久性(如果您需要的话)等等。
您的数据库实现 DAO 将具有一个 java.sql.Connection 引用,这将使其能够连接到数据库。您将使用依赖机制(如 Spring 或 Guice)在运行时为 DAO 接口和连接对象注入适当的实例。
基本上,学习从接口的角度思考,并且更喜欢组合而不是继承(不要回避使用继承来避免代码重复;只要确保超类不构成合同的一部分或不属于'不暴露于外部世界。我个人发现Google Guice docs 是一个很好的资源,可以帮助您从模块的角度开始思考(在依赖注入的上下文中)。