一个想法,不知能否实现。

10-05-24 tianqiq
java是面向对象的, 但是现在很多的java系统全是面向过程的。为什么? 我觉得一个很重要的问题。

是因为是因为我们大部分系统都是数据库系统,基本上就是crud。 这束缚了我们的思维。使我们在碰到一个问题

的时候,总认为,建立好数据库,然后对应的model 然后crud。 或者再添加一些复杂点的 crud就完事。

这不能说是错了。 应为这样看上去非常直接,而且也确实能够做出系统。那怎么才能解决这个问题,

使我们不再关注数据库的curd呢,而关注我们领域模型呢。 我觉得最好的办法应该就是忘记crud。

使我们的系统中根本就不存在crud的操作。 可能有人会说那我们的系统数据怎么持久化呢。

其实我说的是,我们的系统不存在crud的操作,并不是说不要数据库了。

我的想法就是。 我们能否开发一个框架,他管理着我们所有的对象,当我们需要对象时,我们可以向他拿,

当我们不需要这个对象时,我们可以告诉他,叫他销毁。 当我们的对象属性,改变时 。他会在你完成改变的的

时候,自动同步到数据库。 说白了。就是一个能生产和跟踪我们的每一个对象,他自动的同步到数据库。

让我们在系统开发中感觉不到curd的存在。使我们更好关注领域模型。

不晓得我这个想法,能否实现。 呵呵。

    

2
banq
2010-05-24 14:52
是一个好的想法。

key-value之类的NoSQL应该可以实现数据存储和可伸缩性,或者如MemoryCache + MemoryDB之类,但这些技术也只是针对散乱的数据,没有集中到对象封装上。

crud概念确实是针对数据库存储来讲的,潜在的语境就是面向需要的存储的数据,创建就是插入新增需要存储的数据,删除就是删除已经存储的数据,所以CRUD操作不是围绕对象的操作。

CRUD不是针对对象的,所以,在对象世界就可能没有对应的CRUD操作,也就可能无法找到对应相等的替代品。

如果是这样,那么围绕数据CRUD也可能有存在价值,简单系统,而复杂系统则使用OO。

spawnyy
2010-05-25 11:38
感觉是很不错的,应该是围绕对象模型来思考问题,可以实现可以监听整个模型,这里可以引用Observer模式,在模式的某个属性发生变化后,驱动Event来进行更新操作,不知道是不是就可以此方法了呢

banq
2010-05-26 08:50
2010年05月25日 11:38 "spawnyy"的内容
应该是围绕对象模型来思考问题,可以实现可以监听整个模型,这里可以引用Observer模式,在模式的某个属性发生变化后,驱动Event来进行更新操作,不知道是不是就可以此方法了呢 ...

JavAte框架就是这个原理,表现层使用ZK javascript框架,监听模型的变化,这种模式架构类似SWING架构,通过引入jgroup,也可以把事件触发分布化,5年前也就有类似框架。

cray
2010-05-27 09:32
我想知道, 一个框架管理所有的对象, 需要多少的内存, 每次修改都同步到数据库, 又需要多少的IO操作.

是否需要自己的框架管理Transaction, 框架又怎么處理Transaction Rollback的問題. 這樣, 框架是不是使用大型的項目呢?

猜你喜欢
4Go 1 2 3 4 下一页