鉴于下面的场景,其中 DbConnection 接口是两类实现的中介。它实际上链接到哪个设计模式,因为它似乎与 3 种不同的设计模式相关联,在适配器、代理和中介的情况下。你能帮帮我吗?
场景: 我有一个名为
UserService
的类来连接到数据库,我创建了一个名为 DbConnection
的接口,UserService
将在其中连接。
DbConnection
接口目前只有一个实现称为
MySqlDbConnhection
但我可以在将来更改为 OracleDbConnection
实现并且 UserService
不会受到影响,因为它只知道 DbConnection 接口。
如果你有唯一的实现并且只是提取接口,我不确定这是否完全属于某种模式。如果您要的是模式,那么我想也许来自 GRASP 的Polymorphism 可以更好地解决您的设计问题。
但是,我要说的是,它实际上是什么模式或如何调用并不重要。只要选定的设计解决了您的问题——您就走在了正确的轨道上。模式主要是指南而不是食谱。