Castle ActiveRecored Beta4 的变化

[ 2006-09-11 20:43:26 | 作者: yuhen ]
字号: | |
Castle 的官方 Release 版本依然停留在 2006-1-1 发布的 Beta3,这个版本里面有很多设计不合理的地方。今天从其 Daily Builds 获取了最新的 Beta4 版本(2006-8-27 CASTLE-760-net-2.0-release.zip),发现变化非常大,泛型支持和继承关系总算正常了。 [smile]

看来在 1.0 发布以前,结构变化可能还会发生,那些用 Beta3 开发项目的人恐怕有苦头吃了。 [sweat]

下面是我画的几个 Beta4 相关的 UML 图。

uploads/200609/11_204836_castel_beta4_1.png

现在实现实体类应该更方便了,尤其是那几个泛型类,基本上我们再不用为实体类添加任何方法了。POJO? [lol]

uploads/200609/11_204845_castel_beta4_2.png

ActiveRecordMediator<T> 总算继承自 ActiveRecordMediator 了,Beta3 里面 ActiveRecordMediator<T> 继承自 Object,而且还是个静态类,简直莫名其妙吗。 [smile]

uploads/200609/11_204850_castel_beta4_3.png

增加了新的 Query,尤其是 CountQuery 还是很必须的。

=== 查看完整大图 ===

不过也有不爽的地方,看看下面的代码片断。试想我们采用 IoC 模式载入多个 DataAccess Provider Assembly 时会有什么样的麻烦,我们不得不让 Main Assembly 引用 Castle.ActiveRecord.dll,然后调用 ActiveRecordStarter.Initialize() 来初始化所有载入程序集的 ActiveRecord Class。这似乎和 IoC 和 Provider 模型的本意有所背离吗。 [sad]
public static void Initialize(IConfigurationSource source, params Type[] types)
{
    lock (ActiveRecordStarter.lockConfig)
    {
        if (ActiveRecordStarter.isInitialized)
        {
            throw new ActiveRecordInitializationException("You can't invoke ActiveRecordStarter.Initialize more than once");
        }

        // ........
    }
}
[最后修改由 yuhen, 于 2006-09-12 15:44:49]
评论Feed 评论Feed: http://www.rainsts.net/feed.asp?q=comment&id=324

这篇日志没有评论。

发表评论
表情图标
[smile] [confused] [cool] [cry]
[eek] [angry] [wink] [sweat]
[lol] [stun] [razz] [redface]
[rolleyes] [sad] [yes] [no]
[heart] [star] [music] [idea]
UBB代码
转换链接
表情图标
悄悄话
用户名:   密码:  
验证码 * 请输入验证码