该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2003-11-19
robbin 写道 引用 明显,这样就极端不爽了。我为了实现这么一个看来是纯对象的东西,却要引入许多如此复杂的不直观的东西。
?????? 不是很清楚你打“?”干什么? 确实是timeRange的行为我们为什么要搞个什么控制类? |
|
返回顶楼 | |
发表时间:2003-11-19
看了这么多意见,我的想法是对象建模解决的是软件结构方面的问题。OO 使软件有了更加灵活的结构,需求发生变化时可以很容易地适应变化(只需要修改少量的代码)。但是在遇到一些复杂的问题时,解决问题的具体方法是对象建模无法提供的。例如《Effective Java》这本书告诉我们如何写性能更好的 Java 程序,但是它基本上与 OO 是无关的。
以前见到过有人争论 OO 和算法到底哪个更重要。我倾向于认为 OO 更重要,但是算法也是非常重要的,因为它是解决问题的基本的思路。M$ 招人不考 OO,甚至会考一些与计算机无关的问题,他们主要考察的就是你解决问题的思路。 从通用性的角度,软件科学分为以下一些内容: 数据结构+算法:具有最高的通用性,适合于各种场合。 对象建模:较高的通用性,适合于复杂的应用系统。 数据建模:通用性低于对象建模。 OLAP、数据挖掘:专门的领域,通用性最低。 |
|
返回顶楼 | |
发表时间:2003-11-19
weihello 写道 借此帖帮助我消除一个疑问吧。
通常我们需要持久的是纯粹的数据对象---只有数据没有业务操作。 但随着如果用对象建模,极有可能存在这么一个问题,我的实体对象具有较多的体现逻辑的行为。比如,实体对象:timeRange. 它不仅具有属性,也具有行为。 public class XxxTimeRange extends ITimeRange{ private XXXX startTime; private XXXX endTime; public ITimeRange intersect(ITimeRange timeRange);; } 从软件分层次以及考虑不暴露实体对象的角度看,也即是采用DTO或者VO,那么我这个timeRange如何处理?客户程序可能要利用我的timeRange的借口。在DTO或者VO里面重复实现一次嘛?这明显不可能。DTO和VO基本上纯粹的数据对象。抑或是增加一个类似Adapeter的东西? 此时,我们应该如何处理, 我不认为intersect()是XxxTimeRange的一种自身行为,所以不应该作为XxxTimeRange 的业务方法,我觉得它放到一个Helper类里会更合适。 |
|
返回顶楼 | |
发表时间:2003-11-20
youcai 写道 此模型非彼模型:),我说的是业务模型,都是和业务相关的。 业务专家比你更知道哪些业务会扩展,哪些业务会复用,他根本不关心open-closed。业务的复用更有价值,也更难。这好像是现在很多公司的开发目标,业务中间件,或者业务基础件都是围绕这个目标来的。对熟悉业务的人员进行必要培训,利用业务设计器,类似于画画业务流程图就实现大部分业务代码,然后生成相关代码,系统就跑起来了。 不过目前还没有完全成熟的产品。金碟,用友,思维加速都在推,有兴趣的朋友,可以去了解了解。 这就更跑题了 这类产品也是需要开发的,都会有一套框架,并更加注意扩展性。 同意Quake Wang的看法,很多东东具有通用性。 所谓业务模型,当然,比如ERP专家也是有地。但看你有没有这方面的专家,问题还有,如果这个专家够专家,还好;如果是为了专家而专家的专家,那你就惨啰:改不完的程序,改不完的不断变化的业务逻辑。:) |
|
返回顶楼 | |
发表时间:2003-11-20
数据建模和对象建模是要从系统的需求和侧重点出发. 象数据量不大, 业务流复杂的系统可以先设计domain object layer,
然后去设计data access layer, 设计中要做用DAO把OR Mapping和stored proc做到portable. 开发时可以先用OR Mapping去访问数据库, 在系统设计开发后期再把繁重批量的数据库访问放到stored proc里 最后在根据用户交互和分布式的需要去设计service facade layer, 不是所有的domain object 都必需在service facade之后. service facade的设计有点象stored proc的设计, 可以在设计开发后期再根据性能和重用的考虑去做. 我们一般是先写一个很简单的可以满足系统功能的程序出来, 先不考虑分布,重用和性能, 然后在用上面分层的原理用一些adapter把他分开. |
|
返回顶楼 | |
发表时间:2003-11-20
potian兄发言语出惊人,经过兄弟仔细查找,原来potian兄是。。。。
是。。。。。。。。。。。。。 浙江大学灵峰科技开发公司技术总监 石一楹 而且在很多论坛上都是很了不起的人物啊 ,佩服! |
|
返回顶楼 | |
发表时间:2003-11-20
spy 写道 potian兄发言语出惊人,经过兄弟仔细查找,原来potian兄是。。。。
是。。。。。。。。。。。。。 浙江大学灵峰科技开发公司技术总监 石一楹 而且在很多论坛上都是很了不起的人物啊 ,佩服! N年前的事情了,呵呵。 |
|
返回顶楼 | |
发表时间:2003-11-20
给出potian的erptao组织新主页:
http://douleimi.vicp.net/ |
|
返回顶楼 | |
发表时间:2004-02-26
各种对象对应着不同的层面,提供了移植的灵活性,同时带入了一些烦杂的东西。
|
|
返回顶楼 | |
发表时间:2004-03-10
在数据建模和面向对象建模上,我认为不是一个主要问题,应该说现在的数据建模经过发展已经融入了面向对象的内容,有两个例子可以证明这点,在现在的数据库设计工具如ERSTUDIO,ERWIN或PD都支持IDREF方式的表现关系,其二就是OFBIZ的EE,你不能说它是完整的数据建模,实际上在设计EE模型的时候,你很少用传统的数据库设计理论去设计,而是从对象的角度考虑问题。所不同的是,我们需要将集合类属性设计成另一个对象,然后再建立组成关系。因此可以说,这里的争论是不是意义不大。仅仅是一些操作
上的区别,而建模思想上并没有差别。 |
|
返回顶楼 | |