不久前我开始学习设计模式(目前只涉及外观和抽象,但我很享受)。我正在寻找将抽象模式应用于我遇到的问题。问题是:使用一个抽象类和一组方法和属性来支持各种数据库系统,然后底层的具体类(从抽象类继承)将被实现。
我创建了一个 DatabaseWrapper 抽象类,并创建了从 DatabaseWrapper 继承的 SqlClientData 和 MSAccessData 具体类。
但是,我仍然对模式如何在客户端上实现这些类感到有些困惑。
我会做以下事情吗?:
DatabaseWrapper sqlClient = new SqlClientData(connectionString);
这是我在示例中看到的,但这不是我想要的,因为我想封装具体的类;我只希望客户端使用抽象类。这样我就可以在未来支持更多的数据库系统,只需对客户端进行最小的更改,并为实现创建一个新的具体类。
我还在学习,所以这里可能有很多问题。请告诉我如何封装所有具体类,以及我的方法是否有任何问题。
非常感谢!
PS:我很高兴进入软件架构,但仍然是初学者,所以请放轻松。:)