我正在寻找一个开源 java 应用程序(C# 应用程序也可以),以学习和理解良好的面向对象设计。
具体来说,我正在寻找与关系数据库的交互,以便我可以了解将 OO 设计转换为非 OO 结构之间的更详细信息。
我查看了一些 ORM 示例。虽然他们教授了良好的 OO 设计,但发生了太多的魔法,隐藏了很多关于数据库交互的细节。
你有什么建议吗?
我正在寻找一个开源 java 应用程序(C# 应用程序也可以),以学习和理解良好的面向对象设计。
具体来说,我正在寻找与关系数据库的交互,以便我可以了解将 OO 设计转换为非 OO 结构之间的更详细信息。
我查看了一些 ORM 示例。虽然他们教授了良好的 OO 设计,但发生了太多的魔法,隐藏了很多关于数据库交互的细节。
你有什么建议吗?
Dofactory 设计模式展示了面向对象设计的好例子:http: //dofactory.com/Patterns/Patterns.aspx
ORM 只是数据库和代码对象之间的映射。如果你设置并使用一个,你会“感受”它,它看起来不会那么“神奇”。
这是一个建议 - 使用 Hibernate 设置一个简单的项目,首先只有一个表,然后是一个关系示例(需要连接的东西)。Hibernate 可以配置为在运行时记录查询,因此您可以看到它是如何转换的。
另一种选择是使用一些框架运行类似的练习,例如 rails activerecord(设置起来非常简单)。
之后,(可能有点高级)尝试编写自己的,可能不是处理多对多配置的全面的东西,而只是将 API 请求映射到生成的数据库查询的东西,并从输出。这肯定会揭开这个过程的神秘面纱。
请参阅集合框架
除了规则的一些例外(例如堆栈实现),它展示了应用设计模式(策略、迭代器等)、封装、算法、组合、代码重用等的一些真正好的示例。此外,这是一个好的教学开始自己的泛型。通过阅读它的来源比阅读任何书籍了解更多关于模式和算法的知识。