问题标签 [class-hierarchy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
20945 浏览

java - 生成Java类层次图的应用程序

寻找一个工具:

  • 产生视觉上令人愉悦(不花哨)的正交结构图层次结构
  • 输出高质量的 PNG 图像 (300dpi+)
  • 在视觉上区分类、抽象类、接口和枚举类型(最好通过颜色)
  • 交互式用户界面
  • 允许从图中修剪包和/或单个类
  • 使用一组 种子(例如File » Open ):
    • 目录
    • JAR 文件
    • 单独的源文件
    • 单独编译的类
  • 对类依赖项进行全自动分析
  • 搜索类路径以解决尽可能多的未满足的依赖关系
  • 使用单个可执行文件
  • 轻量级 (~5MB) 且快速(在平均 1.5GHz 机器上加载不到一秒)
  • 很简单(点击 10 次即可生成图表)
  • 快速(在几秒钟内绘制 100 个对象)
  • 易于使用(最小的界面,专注于图形生成)
  • 是 OSS 还是 GPL
  • (可选)生成调用图层次结构

无法完成此任务的工具包括:

  • Doxygen + GraphViz(或点)
  • UML 建模器
  • Java的结构分析(无法解析源文件)
  • JUDE 社区(尴尬的界面,不合适的自动生成)
  • 集成开发环境(太复杂,占用太多内存)

有任何想法吗?

0 投票
8 回答
20955 浏览

c# - 我需要用继承实现 C# 深拷贝构造函数。有哪些图案可供选择?

我希望在 C# 中实现我的类层次结构的深拷贝

这将不起作用,因为当克隆孩子时只有一个父母是新的。在我的代码中,一些类有很大的层次结构。

推荐的方法是什么?在不调用基类的情况下克隆每个级别的所有内容似乎是错误的?这个问题必须有一些巧妙的解决方案,它们是什么?

我可以感谢大家的回答。看到一些方法真的很有趣。我认为如果有人给出一个完整的反思答案的例子会很好。+1 等待!

0 投票
2 回答
4632 浏览

ruby - ruby 是否提供了一种显示层次结构调用的方法?

就是这样,我想看看继承固定类的类是什么。在 RUBY 中有这样的方法吗?

Aptana 提供了一个显示这一点的选项,但有什么方法吗?

谢谢

0 投票
1 回答
7756 浏览

hierarchy - 在非父子维度中创建层次结构

我正在多维数据集中使用 AdventureWorksDW 为产品维度创建用户层次结构。我添加了 Product Key、ProductCategory Key 和 Product Subcategory Key 属性。但是,当我将鼠标指针悬停在属性窗口中的 Dim Product 上时,它总是给我一个警告“在非父子维度中创建层次结构”作为工具提示。

0 投票
7 回答
1256 浏览

c# - 在运行时更改 C# 中字段的类型

我有一个现有的类层次结构,这样说:

这些类是通过反序列化实例化的。

但是,现在我需要在 Employee 中为库的特定用户公开额外的字段,即这样说:

问题是,我不能只创建一个扩展“业务”的类,因为我想要添加的是“员工”类。

正如我所看到的,我有两个选择:

  1. 使用“特殊”类复制层次结构。这意味着每个“特殊”类都将有一个原始类的集合和一个新的“特殊”类的集合。

    /li>
  2. 出于反序列化目的,在运行时以某种方式将 'Employee' 重新键入为 'SpecialEmployee'。知道我可以将 SpecialBusiness 中的所有“Employee”对象转换为代码库中的“SpecialEmployee”(可能使用辅助方法使其显而易见)。

关于如何处理这个问题的任何想法?

0 投票
5 回答
2553 浏览

c# - 子类的单元测试

假设我们有这个超简单的类层次结构:

当我为类编写测试时,我应该为Add方法编写测试吗?MoreMath或者我应该只在测试课程时关心那个方法SomeMath?更一般地说:我应该测试一个类的所有方法,还是应该只测试“新”方法?

我可以为双方想出一些理由。例如,在测试所有方法时,您最终会多次测试同一事物,这不是很好,而且可能会变得乏味。但是,如果您不测试所有方法,则更改SomeMath可能会破坏MoreMath? 这也将是一件坏事。我想这可能也取决于情况。就像它是否扩展了我可以控制的类。但无论如何,我是一个完全测试新手,所以我很想知道有什么人比我想的更聪明:-)

0 投票
2 回答
77 浏览

design-patterns - 我应该使用什么设计,以便一个类可以查询它的祖先之一?

我正在创建一个对象层次结构,它表示在控件上绘制的表。我的层次结构如下所示:

我想在表格上有一个选项(参数)来过滤显示的列(单元格)。客户端代码可以执行以下操作:

在控件上显示和放置单元格是 Lines 对象的职责。如何将要显示的单元格的信息从 Table 对象传递给 Line 对象?

我应该给每一行一个表对象的引用吗?每次Table.ShowColumns()调用时,我是否应该尝试通过层次结构将信息传递给每一行?

一定有优雅的方式吗?

0 投票
2 回答
5827 浏览

java - 具有类层次结构的 Spring JDBC RowMapper

我想知道社区认为关于使用 Spring JDBC 映射类层次结构的“最佳实践”。

我们没有能力使用成熟的 ORM 工具,但是我们正在使用 Spring JDBC 来减轻 JDBC 的一些繁琐性质。我们经常使用的一类是 BeanPropertyRowMapper,因为它易于使用,并且能够从我们的结果集中访问类型不敏感的 bean 属性。

我有一个类层次结构,它都映射回单个表(对这个小类层次结构采用 table-per-hiearchy 方法)。因此,该表包含一个 classId 列,可用于确定应实际实例化的类。前任。1 = 经理,2 = 员工,3 = 承包商。所有这些都是“人”,但每个人的子类都有一些属性是他们的类所独有的。

我最初的想法是创建一个 BeanPropertyRowMapper 的子类并尝试注入这个逻辑来表示“如果列 A = 1 然后实例化一个 Manager,然后进行正常绑定”。

这看起来是一种合理的方法吗?人们是否有其他对您有用的建议?

0 投票
8 回答
2956 浏览

java - Java:如何编写方法来接受孩子而不强制转换为父母?

不知道如何命名这个...

所以我有三个子类EventWeightEvent, TimedEvent, RepEvent。通过任何方式,我得到了其中一个孩子的物品。现在我想将该子事件发送到另一个对象中的方法,以便它可以使用该getSavedEvents()方法从中提取数据。该方法仅存在于子项中,因为拉取数据是特定于事件类型的。

我从

但这会将我的子对象转换为Event(父)对象。

有什么办法可以绕过这三种不同的方法。给孩子一个?

感谢您的任何建议。

-约翰

0 投票
2 回答
477 浏览

domain-driven-design - 领域驱动设计 - 实体 VO 和类层次结构

问题的简短版本:“是否可以有一个超类,有 2 个子类,一个是实体,另一个是值对象?”

更长的版本:T 有一个Team超类。团队MasterHelperCode。_ 然后我有DefaultTeamTeam的子类,它是一个具有唯一 **Code****的实体,具有其域标识。然后我有 **ExecutionTeam,它是Team的一个子类,并且有一个额外的属性OriginalTeam

ExecutionTeam是执行任务的团队。当需要执行任务时,我们选择一个DefaultTeam来执行它。但是我们可以从DefaultTeam中更改Helpers(master 永远不会更改)。

执行任务的团队是DefaultTeam ( OriginalTeam ) 的变体,但具有仅为该任务选择的助手。

ExecutionTeam将具有与 OriginalTeam 相同的代码。所以ExecutionTeam 没有唯一的身份。如果同一个DefaultTeam执行 10 次任务,则将有 10 个ExecutionTeam具有相同的代码(具有相同的OriginalTeam)。所以ExecutionTeam不能是实体。

但是让一个实体和一个值对象共享同一个超类(都是团队)有点奇怪。也许这个领域模型有问题。

需要意见。

谢谢