当前位置:  开发笔记 > 编程语言 > 正文

数据库家伙问:面向对象的设计理论?

如何解决《数据库家伙问:面向对象的设计理论?》经验,为你挑选了2个好方法。

我在设计数据库的过程中工作了很长时间,而且这些天我也在使用C#.OO对我来说很有意义,但我并不觉得我对OO设计的深层理论有很好的基础.

在数据库领域,关于如何设计数据库结构有很多理论,主要概念是规范化.规范化直接控制数据库的结构,并在某种程度上决定如何在数据库中排列实体.

在如何设计面向对象程序的结构方面是否有任何类似的概念?

我所要达到的是一个或多个潜在的理论原则,它自然地引导开发人员进入解决特定问题的"正确"设计.

我在哪里可以找到更多信息?
我应该读一下上班的工作吗?

更新:

感谢大家的回答.我正在阅读的内容似乎没有"OO设计的大理论",但是有一些重要的原则 - 主要是设计模式的例子.

再次感谢您的回答:)



1> S.Lott..:

一些设计模式文献要小心.

有几种广泛的类定义.持久对象(类似于关系表中的行)和集合(类似于表本身)的类是一回事.

一些" 四人帮 "设计模式更适用于活动的应用程序对象,并且不太适用于持久对象.当你在抽象工厂之类的东西上摔跤时,你会遗漏一些OO设计的关键点,因为它适用于持久对象.

对象导师什么是面向对象的设计?从关系设计过渡到OO设计,你真的需要了解页面.

规范化,BTW,并不是始终适用于关系数据库的一揽子设计原则.当您有更新事务时,将应用规范化,以防止更新异常.这是一个黑客,因为关系数据库是被动的东西; 你要么必须添加处理(比如类中的方法),要么必须传递一堆规则(规范化).在数据仓库世界中,标准规范化规则不相关的情况很少(或不存在)更新.

因此,对象数据模型没有"像这样规范化".

在OO设计中,设计持久对象的最重要规则可能是单一责任原则.

如果您将类设计为对现实世界对象具有良好的保真度,并且您以非常集中的方式为这些类分配职责,那么您将对您的对象模型感到满意.您将能够将其映射到具有相对较少复杂性的关系数据库.

事实证明,当你从责任的角度来看待事物时,你会发现2NF和3NF规则适合于合理的责任分配.独特的按键仍然很重要 派生数据成为方法函数的责任,而不是持久属性.



2> Corey Trager..:

"设计模式"一书是您的下一步.
http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612

但是,您不必使用OO方法来处理所有事情.不要虔诚于此.如果一个更程序化的方法感觉更加明确,那么就去做吧.OO新手倾向于暂时搁置一段时间.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有