多年来,我一直遵循数据库规范化技术来至少识别我的对象模型的关系和实体,它总是让我更接近一个非常合理的设计。
最近我发现了这篇研究论文,它实际上涉及相同的
http://www.decodephp.com/oo-design-normlization.pdf
你们对这种技术感觉怎么样?你觉得它有用吗?你发现它有什么重大问题吗?
答案 0 :(得分:3)
这是垃圾。
面向对象设计处理这样一个事实,即规范化状态和“规范化”行为(通过功能分解)会产生不兼容和不良对齐的结构。单独执行此操作的系统存在的问题是,尽管数据规范化和功能分解在最大限度地降低各自域中的复杂性方面做得很好,但是当状态结构和行为结构需要在其内部进行互操作时,会产生高度复杂性。程序
一般而言,想象一个最佳设计的状态空间和一个最佳设计的行为空间,存在于球体的相反极点上。你的系统越接近一极,它就越远离另一极。这只是因为行为通常与国家正交。
作者似乎忽略了这一点,因为他们的类图中的操作只是状态信息的获取者和设置者,这就是状态优化(数据规范化)技术非常适合的原因。
答案 1 :(得分:0)
购买C. J. Date的书籍,以获得关于关系数据模型的认真深入,可读,有充分论证的论文,并且...有人在OOP上提供类似可观的来源。