没头没尾--项目开发笔记:面向业务的用户界面与面向对象的数据库如何连接

原创 2002年11月22日 09:00:00

标题:没头没尾--项目开发笔记:面向业务的用户界面与面向对象的数据库如何连接

关键词:分布式开发 C# 项目分工 面向对象的数据库设计 面向业务的用户界面

       1121号:新的一天又开始了

接着昨天的写吧。现在来谈谈面向业务的用户界面与面向对象的数据库应该在框架中如何进行连接吧。

先把我定义的面向业务的用户界面与面向对象的数据库的组织方式说一下。

l         面向业务的用户界面:用户操作系统中,往往是根据系统一共有几个大模块,然后是模块下面具体有什么业务来进行组织的。例如系统中有

n     采购模块

u       开采购单

u       作采购计划

n     销售模块

u       开销售单

u       结算

l         面向对象的数据库设计:一看就知道了,数据库的设计一定是按面向对象的设计方法,XX范式之类的东东。例如系统中会有

n     机构表

n     商品表

n     单据表

好了,如果这两边都搞定了,那么一定是要在我们的系统把这两块联系起来(废话)。那我去怎么考虑联系两边的呢?

先回忆一下我以前是怎么搞的吧。用VCVB写程序的时候,我们可能直接从界面中写连接数据库的逻辑,那么设计的实现也就是变成从界面到数据库是采用混和的模式写程序(想想头也大,还好现在不要这么去写)。进一步到JAVA的分层开发,有DataObject,BusinessObject,UI三层,结构上DataObject,BusinessObject描述的东东从内容上是一样的,基本上是对数据库,也就是对象的封装。只有在界面层的时候才是对业务的封装。可以JAVA的分层没有现在这么复杂。比如我们会有很多的不同的Client实现方法,这些方法可能是按照不同的业务方式进行组织的;又比如我已经写了一小部分框架与代码的自动生成工具,自动生成工具的原理就是对几个组织结构相同的部分可以进行相同的代码文件生成。以方便人员分工(代码生成工具的事回头再和大家说)。这些都需要在一开始就考虑好是统一的在什么层进行两种关系的接口。

好了,上面罗罗嗦嗦一大堆,是我在与部门同仁讨论时说的,最后的结论是把这个分离的事放在facade层来做。也就Business Rules还是按照对象的方式来组织。Facade按业务的方式来组织。Facade对界面中的结构化业务是一一对应的,有一个销售的业务模块就会有一个SalesBillFacade与之对应,而Rules与数据表在代码生成之初是一一对应的,有一张SalesBillTable就会有一个SalesBillTableRules与之对应。对这两边的对应修改原则也是按业务与对象的划分来定义的。如果要加入对数据对象的操作,比如查询,修改数据。一定是要business rules中加方法,然后一直调用到数据库;如果要加入业务上修改,比如要把销售单中的结算与进货单中的结算合并成一个新的结算模块,那调整的就应该是facade层了,别的不应该动。这是条原则。

上面是我的项目中采用的一条原则的前因后果,没有什么必须的约束。大伙有什么好的想法也可以拿来交流,下一节将会写一些上面总结之后胡思乱想的东西了,大伙也可看可不看。(只要不骂娘就好!J

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

结构化设计和面向对象设计方法

结构化设计历来备受责备的就是需求和设计之间的鸿沟,开始不是很理解这个鸿沟的原因。现在再看,在结构化设计中模块和模块之间的关系,被紧紧局限于信息流,这限制了对模块之间众多关系的表达,也无法体现模块和模块...
  • glacier3
  • glacier3
  • 2007年01月02日 14:30
  • 1037

面向对象、面向过程和面向数据库建模

 随着微软从2004年起开始重视面向对象技术的教育和应用(之前即使不是误导,也是有意忽视),面向对象分析与设计技术终于在微软开发社区中得到了日益的普及。但是如何顺利实现从传统的分析和设计思想到面向对象...
  • ichaos
  • ichaos
  • 2007年12月30日 12:54
  • 1497

面向对象和面向工程的区别

C++是在C语言基础上发展的一门语言,他继承了C语言的高效,简洁,快速,和高移植性的传统。C++包含C语言的内容,主要是在C语言的基础上添加了面向对象编成(OOP)的方法,C语言是面向过程的编成。C语...
  • lookcn
  • lookcn
  • 2007年12月12日 15:38
  • 502

面向过程(面向结构)与面向对象的区别

面向结构(过程)的特点:处理具体细微事物的执行效率高,追求实现的过程; (C语言为典型的面向过程的语言。具体的C语言的特点我在《嵌入式开发为什么选择C语言》一文中作了                ...
  • qq_31108501
  • qq_31108501
  • 2016年07月11日 20:05
  • 1229

面向对象式手写数据库架构

android中使用sqlite作为数据库存储数据,操作数据库最常见的是继承SqliteOpenHelper实现数据库表的操作,网上也有很多框架比如litepal,GreenDao等等。 现在我...
  • u010800708
  • u010800708
  • 2017年06月05日 20:20
  • 305

面向对象和面向结构的编程特点和区别

C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的顺序都是程序员决定好了的。它是我学的第一种程序语言。 C++是面向对象的编程,类是它的主要特点,程序执行过程中...
  • Ycx_lq
  • Ycx_lq
  • 2017年01月06日 22:59
  • 1153

面向业务开发应用

自从计算机出现后,快速便捷的从太平洋一样的文海中找到水滴大小的资料真正成为了可能,而能够帮助人们实现这一愿望的程序员就像中世纪的航海家一样用神秘的代码程序指引着计算机一步一步实现的需求。而他们所用的被...
  • etudiant6666
  • etudiant6666
  • 2012年10月15日 11:47
  • 15390

面向对象的代码体现

描述汽车。 分析: 事物的属性: 颜色。 轮胎个数。 事物的行为(功能): 运行。 发现:事物其实是由属性和行为组成的。 可以简单理解,...
  • John_boom
  • John_boom
  • 2017年04月15日 17:18
  • 442

面向协议编程与 Cocoa 的邂逅

引子 面向协议编程 (Protocol Oriented Programming,以下简称 POP) 是 Apple 在 2015 年 WWDC 上提出的 Swift 的一种编程范式。相比与传统...
  • it_zhaoxiaowei
  • it_zhaoxiaowei
  • 2016年12月02日 17:21
  • 357

关系型数据库与面向对象的冲突

面向对象是从软件工程基本原则(如耦合、聚合和封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别,而Java是完全面向对象的语言,这个冲突就表现的越发明显。 对...
  • angiwit
  • angiwit
  • 2014年03月01日 00:43
  • 955
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:没头没尾--项目开发笔记:面向业务的用户界面与面向对象的数据库如何连接
举报原因:
原因补充:

(最多只允许输入30个字)