繁体   English   中英

我应该在具有数据库访问权限的应用程序中应用哪些设

[英]What design patterns should I apply in application with database access

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

我相信执行一些查询我可以实现模板方法模式。 要获得连接,使用双重检查的单例模式就足够了。

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

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

任何帮助表示赞赏。

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

只有当你可以清楚地看到一个好处时,才能“飞行”。
否则 - 那只是浪费时间。

不要这样想:

我应该使用pattern [x],因为它可能会修复[y]

这样想:

哦废话,再次写同样的东西。 让我们看看我们如何避免......

查看Martin Fowler 的企业应用程序架构模式目录

你可能会在那里找到一些好主意。

有一个很好的设计模式称为数据访问对象 ,您必须将其合并到C#中。

摘要:

DAO实现了使用数据源所需的访问机制。 数据源可以是持久性存储,如RDBMS,外部服务(如B2B交换),存储库(如LDAP数据库),或通过CORBA Internet Inter-ORB协议(IIOP)或低级别套接字访问的业务服务。 依赖于DAO的业务组件使用DAO为其客户端公开的更简单的接口。 DAO完全隐藏了客户端的数据源实现细节。 由于DAO向客户端公开的接口在基础数据源实现更改时不会更改,因此此模式允许DAO适应不同的存储方案,而不会影响其客户端或业务组件。 实质上,DAO充当组件和数据源之间的适配器。

您应该调查数据映射器模式的用户,以保持数据存储(SQL / Oracele / Access)的实现细节,而不依赖于数据本身的使用。

http://martinfowler.com/eaaCatalog/dataMapper.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM