问题标签 [object-oriented-analysis]

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 投票
1 回答
385 浏览

c++ - 每个层次结构的单个单例继承

OO 设计问题。

我想将单例功能继承到不同的类层次结构中。这意味着他们需要每个层次结构都有自己的单例实例。

这是我正在尝试做的一个简短示例:

此代码将导致 Jim 和 Bob 共享 BatchNodeSingleton 的受保护成员。我需要他们每个人都有自己的一套。什么是好的解决方案?可以通过assetName作为键查找的指针集合?

真的很感激你的想法。

0 投票
4 回答
27861 浏览

oop - 在 oop 中具有状态和行为的对象

我一直听到术语对象具有行为和状态,或者只是其中之一。但是有什么区别或它意味着什么,如果有人能举个例子,我会非常感激。

0 投票
1 回答
185 浏览

java - 这是可接受的 OO 设计吗

假设您希望每个继承类都是无限线程,这是一个好的 OO 设计吗?做类似事情的任何更好/更优雅的方式?

0 投票
1 回答
881 浏览

design-patterns - 控制反转的正式定义是什么?

可能重复:
什么是控制反转?

我总是听到用模糊的术语描述的控制反转,而且几乎总是通过例子而不是正式的定义

一方面,我听说它是​​在对象编程到抽象方面描述的,并放弃了对显式实例化新对象及其对象图的控制权,而不是请求将其依赖项注入到运行时条件中的对象

然后我听到它在针对框架的编程方面进行了解释,其中程序员放弃了控制流以支持对扩展点进行编码(例如事件和回调)

在这两种情况下到底是什么被倒置了,它们有什么共同点,它们是 IoC 的等效示例。我发现很难找到一个普遍接受的定义

0 投票
1 回答
985 浏览

c# - 如何将属性封装在基类中?

我的场景是关于开发数学问题。作为一个IProblem接口,我认为它应该包含的两个主要属性是QuestionTextResponseQuestionText始终是字符串,但Response有时可以是复杂对象(自定义Fraction结构)或其他数据类型,如字符串、十进制、整数等。

如您所见,Response是对象。我猜到了这种数据类型,因为本质上所有问题都有响应。由于它是一个对象,我只为未来的错误(铸造问题)定义了 get 。

我的想法是稍后,在一个具体的类中访问这个属性(Response),而不需要强制转换。看看这个?

在这里,我正在测试价值。

到目前为止,它有效,但我想知道我正在做的事情是正确的还是好的做法。我见过另一个人使用new运算符来做到这一点。其他人不使用这个词base

这是一个好方法吗?它会导致未来的错误吗?请给我一个关于我的设计的反馈。

编辑:确实有必要在非通用接口中访问响应。

0 投票
2 回答
43 浏览

oop - 面向对象的框架如何调用子类?

我经常使用允许您从某个类继承并覆盖那里的方法的框架,它将被调用。

从框架的角度来看,它是如何完成的?这是什么图案?

0 投票
4 回答
14616 浏览

oop - 序列图和通信图(UML)之间的区别

UML 中的序列图和通信(协作)图有什么区别?

0 投票
2 回答
486 浏览

java - void foo(T y) 和Java 泛型类中的 void foo(T y)

详细解释以下两个版本的 Java 泛型类之间的区别(如果有)?

还有另一个问题:在 foo() 的主体中可以写什么,替换将导致 Java 编译器接受 C 的第一个版本但拒绝 C 的第二个版本的“...”。

我很困惑。

0 投票
2 回答
96 浏览

java - 查找对象的最快方法

假设您有一个 Sunglasses 对象列表,其中有...

  1. 4个属性,颜色,形状,款式和品牌。
  2. 没有相同的;4个属性的组合总是不同的

检索它们的最快方法是什么?

我认为:

  1. 覆盖 Sunglasses 类中的 hashcode() 方法(应该是唯一的,因为它们都不相同)。
  2. 然后以每个对象的hashcode为key,对象本身为value,放入一个Hashmap

假设我确切地记得我想要得到的玻璃杯的颜色形状、款式和品牌,

  1. 我将它们与我实现的哈希码方法一起应用。
  2. 然后从哈希图中获取它,这应该给我时间 O(1) 检索。

问题是如果我只知道颜色怎么办。如何获得所有具有相同颜色的眼镜的列表?

0 投票
2 回答
162 浏览

python - 没有行为的对象

我正在考虑一种情况,我有一个对象“交易”,它有很多属性,比如帐户、金额、日期、货币、类型等。

我从不打算改变这些数据点,计算逻辑将存在于其他类中。我的问题是,为了保存数据而实例化数千个对象是不是很糟糕的 Python 设计?我发现嵌入类中的数据更容易处理,而不是试图将其塞进某种数据结构的组合中。