1

我想实现一个销售和库存管理系统,对如何在系统中应用依赖注入感到困惑。我想要一个使用数据库来持久化其数据的库存类,我应该有一个处理数据库连接的类,比如 DBConnectionManager,然后是一个使用 DBConnectionManager 并与数据库交互的数据库层 DBWrapper,然后充当两者之间的抽象层数据库和使用数据库的类,例如库存、用户、客户、销售。或者我应该在每个用户、客户、...类中编写 sql 代码。

4

2 回答 2

1

IMO,您应该为您的数据库活动/操作创建一个DAO接口。此 DAO 接口将具有用于存储/检索数据的通用操作。然后你可以让类实现这个 DAO 接口;一类将启用数据库持久性,一类将启用基于文本文件的持久性(如果您需要的话)等等。

您的数据库实现 DAO 将反过来有一个java.sql.Connection引用,这将使它能够连接到数据库。您将使用依赖机制(如 Spring 或 Guice)在运行时为 DAO 接口和连接对象注入适当的实例。

基本上,学会从接口的角度思考,并且更喜欢组合而不是继承(并且不要回避使用继承来避免代码重复;只要确保超类不构成合同的一部分或不公开我个人发现Google Guice 文档是一个很好的资源,可以帮助您从模块的角度开始思考(在依赖注入的上下文中)。

于 2011-07-08T13:56:17.560 回答
1

您是否尝试过存储库模式?

与 DI 一起使用非常棒,您可以构建一个根类来保存连接和基本操作,如更新、删除等......

然后扩展该类以创建具有更有意义名称的更具体的行为......

这是关于它的链接

http://nhibernate.hibernatingrhinos.com/27/the-repository-pattern

于 2011-07-08T13:59:56.477 回答