问题标签 [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.
scala - 如何在仅接受子类的 scala 中进行结构输入?
与其用语言描述问题,不如让我向您展示一个 Scala Interpreter 会话,它显示了我想要做什么。
所以基本上我想在一个参数中定义一个类型,它既是某种类型的子类,又包含一个带有签名的方法 def name():String
。
注意:我正在尝试这样做,因为我的类层次结构已经很复杂了。鉴于此,我宁愿不添加 aParentWithName
abstract class
或者trait
是否可以避免。
delphi - Is there a utility for Delphi 6 that analyzes class hierarchies and can be queried for method ancestry?
Is there a tool for Delphi 6 that can analyze the class hierarchy of your application and answer questions about particular methods? I could use a tool that could take a particular method name and it would show which classes in the call hierarchy implement that method, the method traits at each inheritance level (abstract, overridden, etc.) the body of the call at each level I could see where the method's implementation is merely a stub, and if each implementation calls the inherited method or not.
java - Calling child method, when cast to parent type in java
I am having problems with some course work i'm trying to finish off and any help would be appreciated!
I have 3 types of accounts which extend an abstract type "Account".. [CurrentAccount, StaffAccount and MortgageAccount].
I am trying to read in some data from file and create account objects along with user objects to add to hashmaps stored within the program.
When I create account objects I use a temporary variable of type Account and define its subtype dependant on the data read in.
for example:
Problem is when I try to call a method belonging to type MortgageAccount..
Do I need a temp variable of each type, StaffAccount MortgageAccount and CurrentAccount and use them coresspondingly in order to use their methods?
Thanks in advance!
java - 如何调用类层次结构中的方法?
我有这个从另一个类扩展的超类
另一个类是ISIRFinderAction
从AbstractDOEMessageDashboardAction
我错过了什么吗?为什么getQuery
不工作。我认为它会在类层次结构中搜索它。
nhibernate - 使用 2 种策略通过 fluent nhibernate 映射类层次结构
我想使用流利的 nhibernate 或 nhibernate 本身(我的意思是 hbm 文件)组合每类表和每层次表策略,但我不知道如何。我更喜欢流利而不是 hbm,但如果不可能,那么 hbm 也可以。我通过在 fluent 中引入 Entity 作为 ClassMap 和所有其他作为 SubClassMap 来测试这一点,但是在 fluent 生成的 hbm 文件中,Entity 是一个类,而所有其他都是连接类,这不是我想要的。我将在下面更详细地描述这个问题。
类层次结构:
我想为实体创建一张表,为人员及其所有类型(所有子类)创建一张表。我的意思是,我想对实体使用每类表策略,对 Person 和 SystemUser 类使用每层次表策略。数据库结构是这样的:
任何帮助表示赞赏。
design-patterns - 更高的类层次结构与更广泛的类谱
我有一个“良好实践”的问题:
让我们假设一个有很多列表类型的情况
带有事件的 IObservableList
IReadOnlyList 只读
ISomeList 一些执行附加操作的列表
定义6个类会更好吗?
可观察列表:IList
ObservableReadonlyList:IList
ObservableSomeList:IList
只读列表:IList
ReadonlySomeList:IList
ObservableReadonlySomeList:IList
或者
使用 3 个类相互适应:
ReadOnlyListAdapter : IList
ObservableListAdapter : IList
SomeListAdapter : IList
并实例化
IList MyObservableReadonlySomeList = new ReadonlyListAdapter(new ObservableListAdapter(new SomeListAdapter)));
笔记:
我更喜欢这 6 个类,但是当一个类有 6 个或 7 个属性时会发生什么?30-50节课?
感谢您有一个愉快的一天...
c++ - 强制所有类在多级继承层次结构中实现/覆盖“纯虚拟”方法
在 C++ 中,为什么纯方法 只virtual
强制其直接子代(用于对象创建)而不是大子代等强制覆盖?
我认为忽略此功能没有什么大不了的。
例如,从语言设计的角度来看,struct DD
只有D::foo
当它具有像using D::foo;
. 否则它必须覆盖foo
强制。
有没有在 C++ 中产生这种效果的实用方法?
ide - Pharo/Squeak - 如何快速浏览给定类中给定方法的实现?
假设我想看看“复制”是如何在 Dictionary 类中实现的。目前我使用系统浏览器并手动遍历继承层次结构(自下而上),直到找到实现给定消息的类。工作区是否有一条线,可以在正确的位置打开系统浏览器?
inheritance - 以编程方式下推 Smalltalk 中的“安全”方法
我想收集哪些方法可以安全地从超类下推到子类,特别是当您只有一个子类并且没有理由在超类中维护该方法时。
可能是动态地发现这些方法(在执行期间)以检查哪些方法在超类中执行,并且鉴于只有一个子类,它们可以被推下?有人做过这个吗?可能有工具吗?
c# - 验证错误层次结构设计
在我们的系统中,我们有一个 entity Product
,它可能有各种自定义属性。属性集可能因产品而异,并存储在 type 的字段中List<Property>
。属性有不同的类型(字符串、整数、双精度)并且可能具有一些特殊特性,例如它们可能是多值的、可能是特定范围的值、给定列表中的值等。属性的值总是包含在字符串字段Value
。
现在我当前的问题是实现这些属性的验证,我有点坚持采用什么方法来部分表示验证结果。我必须满足的要求: - 验证的结果将被其他应用程序层使用,因此生成的 API 应该清晰且易于使用 - 每个错误都应该有不同的表示 - API 的用户应该有足够的信息来理解错误细节(例如,对于范围错误,应提供最小可能值、最大可能值和实际值)
以下是我目前考虑的方法:
类层次结构。有一个基础抽象类
ValidationError
,每个特定的错误都会反映在一个继承的类中。如果错误有任何细节,相应的类将有必要的字段来存储所有信息。例子:由于实际空类的多样性,这种方法对我来说似乎是相当多余的。此外,使用这样的 API 似乎并不正确(
if (typeof(error) == typeof(RangeValidationError))
- 胡说八道!)。然而,这是我想到的第一件事。错误枚举,必要时,类层次结构。所有错误都用枚举表示。大多数情况下使用一个类
ValidationError
,当特定错误需要附加信息时,将创建继承者,与第一种方法基本相同。例子:这种方法看起来要好得多,但也有缺点。最大的一个问题是,我们作为 API 用户无法保证当我们遇到类型 say 的错误时
ValueNotWithinRange
,我们正在处理 type of typeRangeValidationError
,如果没有 - 我们如何处理它?理想情况下,我希望有一些设计级别的功能可以防止这种情况的存在,因为我不是唯一开发 API 的人。这种方法的另一个问题是,如果大多数错误最终需要一些额外的信息,我们最终会得到相同的方法 1。
有人对这两种方法有什么想法可以分享或提出更好的方法吗?我将非常感谢任何回应。提前致谢。