【问题标题】:Where/how should the database code go in a class/application?数据库代码在类/应用程序中应该放在哪里/如何?
【发布时间】:2012-04-01 10:10:56
【问题描述】:

所以,我不知道这个问题是否足够明确,但这是我的问题:

我正在 VB.Net 中编写一个小型应用程序,它从网站检索信息并将其呈现给用户。基本上,我写了一个类,它有一个 Get(URL) 方法来检索网页,读取它并填充各种 Properties em>(只读)对象。 此类工作正常。

现在,我想将该信息存储在数据库中(我现在正在使用 Access),这样我就可以从数据库中读取数据,如果该类被调用以获取 已知 网址。由于我对 OOP 还很陌生,并且对桌面应用程序中的数据库使用完全陌生(尽管在设计数据库时没有问题),所以我不确定如何继续:

  • 我应该将数据库代码放在我现有的类中吗?
  • 是否应该在现有类的基础上创建一个扩展类,并添加 DB 代码?
  • 我是否应该为 DB 数据创建一个完全不同的类并将 switch 逻辑(从 DB 或 Web 读取)放入我的应用程序中?
  • ...

我意识到我的问题对于最有经验的人来说可能听起来很愚蠢,但我是新手,我真的很想学习如何在第一次正确的方式做事! !!

谢谢!

【问题讨论】:

    标签: database oop class save


    【解决方案1】:

    这就是我会做的:

    • 为数据库代码创建一个新类,并创建一个 它实现的接口。
    • 然后创建另一个具有获取 Web 数据的代码的类。让它实现相同的接口。

    现在您可以替换任一类来从您的控制器类进行数据访问。

    此外,我通常将数据库和数据访问与我的服务和 ui 类放在不同的项目中,它们位于它们自己的类中,但这对于您的情况可能有点过分。

    如果您想了解有关该主题的更多信息,请查看 n 层应用程序设计。您在这里谈论的层是数据访问。

    http://en.wikipedia.org/wiki/Data_access_layer

    【讨论】:

    • 嗨,我喜欢你的想法,但是,我不确定我是否完全理解它:如果我没记错的话,我最终会得到 1 个接口(描述我的对象)和 3 个类,一个从web读取数据,一个从db读取数据,最后一个控制类。最后一个类将是从我的应用程序访问的类,负责选择数据源(DB 或 Web),并且还会触发将下载的数据保存到 DB 的操作,对吗?
    • 你明白了!这是一种非常广泛使用的模式,IMO 最适合这种情况。显然这两个数据访问类实现了接口,而你的控制器(服务)类没有。
    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多