2011-04-14 73 views
6

我将开始开发一个必须访问数据库的应用程序。通常需要实现哪种设计模式区域以使我的应用程序更加灵活,例如将DB客户端从SQL更改为Oracle。我应该在数据库访问应用中应用哪些设计模式

我相信执行一些查询我可以实现模板方法模式。并且通过双重检查来获得连接的单例模式就足够了。

开始之前还有什么我应该知道的吗?

应用程序将在C#中开发,因此支持对象继承和多态。

任何帮助表示赞赏。

回答

8

确保您的所有代码都封装在数据访问层中。对接口进行编码,以便如果您需要编写新的数据访问库,则不必更改所有调用代码。这将至少将所有数据访问隔离到库上。更改数据库的可能性有多大?不要让软件变成复杂的东西,因为这会让生活变得更加困难。

+1

垃圾邮件接口就像没有明天! – 2011-04-14 15:23:30

+3

+1不要让软件变成复杂的假设。无缝更改DBMS的能力很少是有用的设计目标。 – 2011-04-14 15:24:56

+2

感谢+1 @Captain--我经常遇到编写软件来处理几十个根本就不会发生的情况! – tomasmcguinness 2011-04-14 15:26:25

1

有一个称为Data Access Object一个好的设计模式,你必须把它纳入到C#。

总结:

的DAO实现与 数据源工作所需要的访问 机制。数据源可以是 持久性存储就像一个RDBMS,一个 外部服务就像一个B2B交易, 一个像一个LDAP数据库存储库,或 通过CORBA 互联网Inter-ORB协议(IIOP)或 低访问的业务服务级插座。依赖于DAO的业务 组件使用 为其客户端提供的 DAO更简单的接口。 DAO 完全隐藏其 客户端的数据源 实施细节。由于DAO向客户端公开 的接口在底层数据源 实施更改时不会更改 ,因此此模式 允许DAO适应不同的 存储方案,而不会影响其客户端或业务组件。 本质上,DAO充当组件和 数据源之间的 适配器。

+0

到数据访问对象的链接已死亡。另一个好的是在这里 - http://www.oracle.com/technetwork/java/dataaccessobject-138824.html – simonbor 2018-02-05 14:58:24

6

只有当您可以清楚地看到利益时,才会摘录“正在运行”的内容。
否则 - 这只是浪费时间。

不要这样想:

我应该使用模式[X],因为它可能会解决[Y]

这样想:

哦废话,再次得到了写相同的东西。让我们看看我们怎样才能避免...

相关问题