频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

3.2.2 IUndoableObject接口

作者: (美)霍特卡(Lhotka,R.)著;王鑫译 出处:电子工业出版社博文视点  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2008-01-24 10:24
关 键 词:IUndoableObject接口  业务框架  Expert C# 2005 Business Objects中文版
阅读提示:《Expert C# 2005 Business Objects中文版》第3章介绍了创建类,以及所有的工具类及其功能。本文是创建 IUndoableObject接口。

3.2.2  IUndoableObject接口

与IBusinessObject提供某种形式的多态和所有业务对象通用的属性一样,IUndoableObject对于所有可编辑的业务对象也是这样。特别是从BusinessBase<T>和BusinessListBase<T,C>继承来的那些对象。

这种多态能力在本章接下来对UndoableBase的实现当中会变得非常地重要。UndoableBase需要能够用同一种方法来处理所有的可编辑对象,以实现N层撤销功能。

下面是IUndoableObject的代码:

namespace Csla.Core
{
public interface IUndoableObject : IBusinessObject
{
void CopyState();
void UndoChanges();
void AcceptChanges();
}
}

首先请注意这个接口是从IBusinessObject接口继承而来的。这意味着所有实现了这个接口的可编辑对象都会自动成为广泛意义上的业务对象。

所有可编辑的对象都支持N层撤销。由UndoableBase实现的N层撤销支持需要每个对象都实现这个接口中列出的那三个方法。

把这些方法放进接口的做法是一把双刃剑。一方面,这清晰地定义了方法,并使UndoableBase的实现更加容易。另一方面,现在任何使用业务对象的代码都可以调用这些方法。换句话说,一个UI开发人员也可以编写代码来调用这些方法——这几乎一定会造成恶劣的错误和副作用,因为这些方法并不是为了公共使用而设计的。
在编写框架的时候,这是一个在设计上很难做出的决定。在这里一个能被UndoableBase使用的通用接口所带来的好处看起来要大于UI开发人员乱用这些方法所引起的潜在风险。

为了帮助减小这种风险,基类中这些方法是用private来具体实现的。这样,只有在对象直接被转换成IUndoableObject类型的时候才能调用这些方法。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
关键字阅读
频道精选