问题标签 [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 投票
5 回答
81 浏览

java - 实施还是扩展?

假设我有一个接口 C 和一个实现它的类 A。

现在假设我想将 A 的实现更改为 C 中的所有函数,除了一个,使用类 B。我应该扩展 A 并覆盖 C 还是应该将 C 实现为新的独立类?

假设一些电话公司想要实现他们的基本接口 Phone 并且他们已经有一些 OldPhone 的旧实现,他们希望保留它的所有功能:拨打电话、挂断、发送 SMS - 而他们不想要改变这一切,但他们确实希望其他新功能来制造他们的新智能手机——他们应该扩展 OldPhone 还是创建一个新类?

我想知道什么时候应该扩展类,什么时候应该从一开始就实现接口——一方面我不想复制代码,但另一方面有时类型,即使它们都是 A,也是概念上不同。

0 投票
3 回答
1370 浏览

c# - 使用接口名称创建类实例的概念是什么?

设置变量或对象的概念是什么,或者我不知道当我创建类的实例并将接口的名称放在左手边时它被称为什么,我知道我们不能创建接口类型的对象。

只有当我声明这些类型的对象时,我需要更多澄清这个过程的名称或.Net 所做的细节。

0 投票
2 回答
132 浏览

python - 使用 self 声明的变量出错

我有这段代码可以从文本文件中提取每一行,如下所示:

13797906 23 n 04 flood 0 inundation 0 deluge 0 torrent 0 005 @ 13796604 n 0000 + 00603894 a 0401 + 00753137 v 0302 + 01527311 v 0203 + 02361703 v 0101 | an overwhelming number or amount; "a flood of requests"; "a torrent of abuse"

它给了我如何声明变量的错误。下面的代码被缩短了,因为它太长了,不能在这里发布。

当我尝试运行此文件时,出现此错误

第 48 行和第 225 行显示在上面的块注释中。我不知道这是否是我声明自变量的某种方式,或者我将它们传递给每个方法的方式,甚至不知道它是如何被调用的,__main__但我只是不知道我在这里做错了什么。我对python相当陌生,所以其中一些对我来说很复杂

0 投票
2 回答
1607 浏览

c++ - C++ 软件架构和设计

在我的 C++ 程序中,我想创建一个具有宽度、高度、面积等属性的对象。我还想声明使用和更新这些属性的方法。

我想要在名为 WidthManipulator 的标头、命名空间或子类(无论如何都是可能的)中以某种方式列出的属性“宽度”的“设置”和“获取”方法。

我想以这种方式创建结构的原因是我想为另一个类的另一个方法使用“get”名称,例如 HeightManipulator。

但是对于嵌套类,我得到 Rectangle::WidthManipulator::Get() 的“非法调用非静态成员函数”错误。我也不想创建 Manipulator 对象,因为这些类没有属性,只是使用和更新父属性的方法......还有一件事,我想使用 void 返回是出于我自己的一个很好的理由。

我该如何解决我的问题?我的结构应该是什么?

0 投票
1 回答
119 浏览

java - 非面向对象方法引入面向对象方法有什么问题

我一直在读这个话题,我读的越多,我就越困惑,

有人可以详细说明一下,我们使用的是遵循结构化方法的语言 C,那么这种方法有什么问题,我们转向创建面向对象的语言 JAVA。

我一直在阅读这么多理论方面的内容,请一些人多提供一些实际的插图,为什么我们首先需要面向对象的方法

我不是在寻找在任何面试或教程中给出的答案我在寻找一个答案来更好地理解面向对象方法的实际重要性

0 投票
2 回答
409 浏览

c# - 我们应该总是明确地指定 ToString() 吗?

我有一个自定义类结构如下。

然后,在我的代码的其他部分,我有一个将String对象作为参数的方法。第一行编译,而第二行不编译。我认为在发送对象时默认调用ToString 。Object类继承的Stuff应该已经实现了ToString (在我的情况下,也被我的实现所掩盖)。

我想念什么?

0 投票
5 回答
719 浏览

c++ - C++中的面向对象设计问题

假设我有一辆车,有引擎和收音机。我想在发动机启动时启动收音机,并且想在发动机超过一定温度时摧毁汽车。在Thinking in C++一书中,有一个组合示例帮助了我。我的想法是相似的:

我知道我可以手动实现:

我可能有语法错误,这并不重要。我的问题是:如何自动创建类之间的所有通信,以便

做同样的工作?我还尝试了继承和虚函数来创建通信,但失败了。

0 投票
1 回答
655 浏览

javascript - $(document).ready 函数之外的 JS 全局变量和函数

我知道我可以将 callFunc 的 def 放在 $(document).ready 函数中,但是另一种方法是什么,这样我就不会使用全局变量

更新:我忘了放if(x),再检查一次。这是为了在我的基于网络的 ide 项目中进行大括号匹配^^

0 投票
3 回答
395 浏览

c# - 面向对象设计之谜

假设您有一个abstract base class从其他类 X 继承 的 A。

A 类覆盖方法foo1

很少有其他类 A1、A2、A3 是concrete类。

所有具体类都继承方法foo1

方法foo1几乎就像应该适用于所有具体类的通用算法。
它“几乎”是因为算法中有一个异常存在一个 if 条件,一些类可以说只有 A1,A3 需要foo2foo.

对于 A2,我们不需要启动foo2.

问题是,如果我foo2在 A 类中实现它的所有子级也将继承此功能,这不是很好的设计吗?

我想排除foo2将由具体类实现的接口-> 但这并不好,因为foo1哪些调用foo2在基类上!

任何想法如何以适当的方式解决这个问题?

谢谢

0 投票
5 回答
5317 浏览

java - Java - 2 Way 'Has A' Relationship

I have just started a project to make my employer a management software. I have a niggling, but potentially simple, query that I can't seem to find any information on.

Is it prudent/good practice to have a 2 way 'has a' relationship between objects. So can, for example, a Client object 'have a' Site, and then the Site 'has a' Client, where the Client object is the Client that 'has' the Site?

Is there anything objectionable (no pun intended) to this, or is it fine? I am currently creating a mock-up UML for the project, and this has been bothering me.