[英]What are the possible data access layer design-patterns for desktop application?
[英]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)的实现细节,而不依赖于数据本身的使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.