诊断Java代码: 深度优先访问器和中断的分派 - 编程入门网
诊断Java代码: 深度优先访问器和中断的分派时间:2011-02-11 IBM Eric E. Allen设计模式最多只能对快速集中到一个项目的简单设计提供很大帮助。但是,在一个特定环境中实现一种设计模式的最简单方法并不一定是显而易见的 ― 要做到这一点,有许多种方法。这个月,我们将讨论应用公共设计模式来产生简单、简短且健壮的代码的一些方法。 首先,让我们看一下两种模式,它们适用于许多不同的环境。在 设计模式(Erich Gamma 等,也称为“四从组(Gang of Four)”著,它介绍了该主题的一些基础知识(请参阅 参考资料))中讨论的所有设计模式中,我发现可最广泛应用的是 Composite 和 Visitor 模式。 让我们进一步研究这两种模式。 用 Composite 指定递归数据类型 很容易就可以看出为什么 Composite 模式是有用的。Composite 模式只是指定递归定义的数据类型的面向对象方法;这些机会始终出现在软件开发中。 研究递归定义的对象类型的能力是软件工程的最显著的特征之一(与数字设计成对比,系统是从有限状态的机器构建的)。 用 Visitor 扩展类层次结构 至于 Visitor 模式,它受到如此广泛应用的许多原因是它补充了 Composite 模式。 Visitor 常常被吹捧为无需实际修改现有复合类层次结构中的类就可扩展其功能的一种方法。但是,它们的能力远远不仅于此。 因为访问器允许您将一个类层次结构的某些功能与类本身分开,所以可以在各式各样的设置中使用它们,在这些设置中,从概念上很难将功能看作是那些类的固有部分。 这种现象常常出现在复合数据结构上的向下递归中。例如,考虑二叉树的类层次结构和确定树中的任何节点是否包含一个零的访问器: 清单 1. 带访问器的二叉树
诊断Java代码: 深度优先访问器和中断的分派(2)时间:2011-02-11 IBM Eric E. Allen通过在 for*() 方法(“*”表示通配符,如“Leaf”或“Branch”)中保留这个零查找功能,把 Tree 类本身分开,我们获得这些优势: 我们防止了这些类的代码膨胀。如果每次需要一个新功能时我们就将新的方法添加到类中,那么它们将很快变得很大。 我们将所有零查找功能放在一个地方,使之便于维护。 访问器的缺点 现在,如“四人组”所提到的那样,使用访问器的主要缺点是将新类添加到复合层次结构中变得有点困难。也就是说,当不期望更改复合层次结 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |