C# 很好的Java应用程序学习OOD

C# 很好的Java应用程序学习OOD,c#,java,oop,rdbms,reference-application,C#,Java,Oop,Rdbms,Reference Application,我正在寻找一个开源java应用程序(C#应用程序也可以),来学习和理解良好的面向对象设计 具体地说,我正在寻找与关系数据库的交互,以便能够理解将OO设计转换为非OO结构之间的更精细的细节 我看了一些ORM样品。虽然他们教授好的OO设计,但有太多的魔法在发生,这隐藏了很多关于数据库交互的细节 您有什么建议吗?Dofactory设计模式展示了面向对象设计的好例子: ORM只是数据库和代码对象之间的映射。如果你设置并使用一个,你会“感觉到”它,它看起来就不会那么“神奇” 这里有一个建议-使用Hiber

我正在寻找一个开源java应用程序(C#应用程序也可以),来学习和理解良好的面向对象设计

具体地说,我正在寻找与关系数据库的交互,以便能够理解将OO设计转换为非OO结构之间的更精细的细节

我看了一些ORM样品。虽然他们教授好的OO设计,但有太多的魔法在发生,这隐藏了很多关于数据库交互的细节


您有什么建议吗?

Dofactory设计模式展示了面向对象设计的好例子:
ORM只是数据库和代码对象之间的映射。如果你设置并使用一个,你会“感觉到”它,它看起来就不会那么“神奇”

这里有一个建议-使用Hibernate设置一个简单的项目,首先只使用一个表,然后使用一个关系示例(需要连接的东西)。Hibernate可以配置为在运行时记录查询,这样您就可以看到它是如何转换的

另一个选择是使用一些框架运行类似的练习,例如rails activerecord(设置起来非常简单)

之后,(可能有点高级)尝试编写您自己的,可能不是处理多对多配置的全面配置,而是将API请求映射到生成的数据库查询,并从输出创建对象。这肯定会让过程变得更加神秘。

请参阅


除了一些规则的例外(例如堆栈实现),它展示了一些应用设计模式(策略、迭代器等)、封装、算法、组合、代码重用等的真正好的示例。。此外,自学泛型也是一个好的开始。通过阅读模式和算法的资料比阅读任何书籍都能学到更多。

这个问题的答案提供了很多不错的C#示例:。@Shaw:ORM不太可能教你好的OO设计,因为ORM基本上是一种工具,可以在两个完全正交的概念:OO和RDB之间建立管道。Ted Newards关于这一主题的启发性文章,名为“计算机科学的越南”(ORM):