`
partech
  • 浏览: 31527 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

用ActiveRecord能否完美的匹配DomainModel?

阅读更多
用ActiveRecord能否完美的匹配DomainModel,对此我有些疑问,你有何感想?

看看老马的定义:

引用
Active Record
An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.


该定义表明Active Record是对于数据库某一个表或视图行的封装,也就是用数据行的方式来建立DomainModel,还是会有阻抗失配的情况吧......
分享到:
评论
6 楼 刑天战士 2006-12-18  
比如遗留系统,就算是很多现在的数据库也不是按照ActiveRecord形式弄得,比如我们公司用的聚源数据库……这样的系统,基本上没有可能用ActiveRecord的
5 楼 BirdGu 2006-12-18  
除了单表继承某些情况下不一定适用以外,Active Record还是能满足大部分需求的吧。例外,单表继承不合适的情况,可以考虑用组合嘛。
4 楼 刑天战士 2006-12-18  
partech 写道
yuxie 写道
难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧

好了,例如:在电信行业有很多客户受理单,订购商品单、移机单、拆机单,增购商品单。
我都把它们统统的放到CustomerOrder表中,你用ActiveRecord如何表示?主要是看看它如何处理复杂的类层次结构。


受理单是parent class,订购商品单、移机单、拆机单,增购商品单是子类,请看ror里面的关于继承的用法,用的是单表继承。

不过我同意楼主的看法,很多情况Active Record是没有办法处理的,或者处理得不大好……
3 楼 tuti 2006-12-17  
partech 写道
yuxie 写道
难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧

好了,例如:在电信行业有很多客户受理单,订购商品单、移机单、拆机单,增购商品单。
我都把它们统统的放到CustomerOrder表中,你用ActiveRecord如何表示?主要是看看它如何处理复杂的类层次结构。


我理解partech兄的意思也许是:
光一个ActiveRecord不能完全表达DomainModel.
还有很多业务逻辑,不是用一个ActiveRecord就能搞定的.
2 楼 partech 2006-12-16  
yuxie 写道
难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧

好了,例如:在电信行业有很多客户受理单,订购商品单、移机单、拆机单,增购商品单。
我都把它们统统的放到CustomerOrder表中,你用ActiveRecord如何表示?主要是看看它如何处理复杂的类层次结构。
1 楼 yuxie 2006-12-16  
partech 写道
用ActiveRecord能否完美的匹配DomainModel,对此我有些疑问,你有何感想?

看看老马的定义:

引用
Active Record
An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.


该定义表明Active Record是对于数据库某一个表或视图行的封装,也就是用数据行的方式来建立DomainModel,还是会有阻抗失配的情况吧......


难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧

相关推荐

    ActiveRecord简单实例_activerecord.zip

    在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...

    Pro ActiveRecord Databases with Ruby and Rails.pdf

    ### ActiveRecord在Ruby与Rails中的高级应用 #### 一、引言 《Pro ActiveRecord Databases with ...通过阅读本书,读者不仅可以掌握ActiveRecord的强大功能,还能学会如何有效地解决实际开发过程中遇到的各种问题。

    Castle.ActiveRecord (.NET FrameWork 2.0)

    如果你想使用Castle.ActiveRecord,但又不想使用.NET Framework 3.0/3.5/4.0或更高版本,那么这个就是你所需要的,For .NET FrameWork 2.0,我整理了好久,自己从官方一个资源库找到并整理好的一套。 -------------...

    ActiveRecord使用文档

    ActiveRecord的model创建,常用的一些增删改查以及HQL的使用

    NHibernate中文教程+activerecord

    使用ActiveRecord,可以直接在对象上执行CRUD操作,无需通过Session,使得代码更简洁。 8. ** Castle ActiveRecord** Castle ActiveRecord是NHibernate ActiveRecord实现的一个版本,提供了额外的功能和方便性。它...

    简单Castle.ActiveRecord.Generator

    Castle.ActiveRecord.Generator 是一个基于 Castle ActiveRecord 框架的代码生成工具,它极大地简化了在.NET环境中使用ActiveRecord模式进行数据库操作的工作流程。ActiveRecord是面向对象持久化的一个设计模式,将...

    Castle.ActiveRecord 升级NHibernate到3.4.0GA

    Castle.ActiveRecord官方已经停止更新了,官方最高支持到NHibernate 3.1.0.4000,这个版本还有不少问题(例如:[NH-2213] - CLONE -Wrong parameters order in IQuery with SetParameterList and Filter)。...

    ActiveRecord 升级NHibernate到3.3.0GA

    将ActiveRecord中的NHibernate升级到3.3.0GA,排除编译的bug问题,保留ActiveRecord的完整功能,【Castle.ActiveRecord 升级NHibernate到3.4.0GA】的功能不完整!

    探索DomainModel系列

    摘要本文通过由ActiveRecord模式到DataMapper模式(使用工厂方法)再到DataMapper模式(使用MapperRegistry)的一系列重构,探讨模式背后隐藏的思想和面向对象设计原则。本系列的要点是:重要的不是如何做,而是为什么做...

    C# Castle.ActiveRecord CS源码示例教程.zip

    这个教程主要围绕如何使用 Castle.ActiveRecord 在 C# 项目中实现 ActiveRecord 设计模式,以及通过 Winform 应用来展示其实现过程。 ActiveRecord 是一种设计模式,源自 Ruby on Rails,它将业务对象与数据库记录...

    [IronRuby] C# 4.0调用ActiveRecord

    从提供的文件信息中,我们可以得知这篇博文主要讨论的是如何使用C# 4.0调用IronRuby中的ActiveRecord功能。不过由于博文链接和部分详细内容无法提供,知识点将基于文件信息部分和公共知识构建。 知识点一:IronRuby...

    scala-activerecord-specs_2.9.2-0.2.3.zip

    2. **ORM(对象关系映射)**: ORM是编程中的一种技术,它通过在对象模型和关系数据库之间建立映射,让开发者可以使用面向对象的方式来操作数据库,而不需要直接写SQL语句,降低了数据库操作的复杂性。 3. **...

    MyBatisPlus的ActiveRecord实现CRUD示例代码

    在本示例中,我们将深入探讨MyBatisPlus如何通过ActiveRecord模式实现CRUD(创建、读取、更新、删除)操作。ActiveRecord是一种设计模式,它将数据库表中的每一条记录映射为一个对象,通过这个对象可以直接进行CRUD...

    C# Castle.ActiveRecord Winform 源码示例教程

    Castle.ActiveRecord 的资料很多,但是WINFORM...这个例子使用的是ACCESS数据库,从单表,一对多,多对多,数据绑定,HQL查询等多方面解译了Castle.ActiveRecord的基本用法,并付上了Castle.ActiveRecord的API及教程。

    PetShop_Model_DAL.rar_CASTLE_Castle mod_activeRecord_castle d

    本项目“PetShop_Model_DAL.rar”提供了一个使用Castle ActiveRecord框架构建的数据访问层示例,适用于ASP.NET应用。通过这个压缩包,我们可以深入了解如何利用Castle ActiveRecord简化数据库操作,提升开发效率。 ...

    userstamp, 这个 Rails 插件扩展ActiveRecord.zip

    userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta

    Java敏捷持久层-ROR-ActiveRecord持久层框架的Java实现

    使用这样的框架,开发者可以更专注于业务逻辑,而不需要关心底层的数据库操作,从而提高开发速度和代码可维护性。在实际项目中,选择合适的持久层框架应考虑项目的规模、团队的技术栈以及性能需求等因素。虽然...

    castle ActiveRecord 源代码

    《Castle ActiveRecord源代码解析——基于NHibernate的C#封装实践》 Castle ActiveRecord是.NET框架下的一款优秀的ORM(对象关系映射)工具,它基于流行的NHibernate库进行了高级封装,为开发者提供了更加简洁、...

    Castle ActiveRecord快速入门指南、ActiveRecord帮助文档

    Castle ActiveRecord 是一个开源框架,它是基于 .NET 平台的,用于简化对象关系映射(ORM)的过程。这个框架借鉴了 Ruby on Rails 中的 ActiveRecord 模式,将业务对象与数据库记录关联起来,使得开发者可以更专注于...

Global site tag (gtag.js) - Google Analytics