问题标签 [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.
java - 如何确定 is-a 或 instanceof 关系是否适合给定情况?
好的,这已经发生在我身上很多次了,所以我不妨问问社区。我经常遇到一个问题,即决定将某物声明为实例还是作为 is-a 继承(并声明子类的实例)是否合适。
例如,
现在,如果staticBaseStation
is-a不会改变并且is-a会改变,我不能在每次位置更改时将静态和动态BaseStation
BaseStations声明为带有调用的单独对象吗?但是我觉得这样做违反了OO原则。(x,y)
dynamicBaseStation
BaseStation
(x,y)
dynamicBaseStation
setX
setY
所以基本上当感觉就像额外工作时,我如何决定是否使用继承?
scala - 将方法放入特征或案例类中?
有两种方法可以为继承 Scala 中相同特征的两个不同类定义方法。
替代方法如下:
第一个方法重复方法名,而第二个方法重复类名。
我认为第一种方法最好用,因为代码是分开的。但是,我发现自己经常将第二种方法用于复杂的方法,因此可以非常轻松地添加其他参数,例如:
这些做法之间还有哪些其他区别?如果我选择第二种方法,是否有任何错误在等待我?
编辑: 我引用了打开/关闭原则,但有时,我不仅需要根据新的案例类修改函数的输出,还因为代码重构需要修改输入。有比第一个更好的模式吗?如果我想在第一个示例中添加前面提到的功能,这将产生重复输入的丑陋代码:
java - Java 请求双精度
如果在我的程序中我使用scanner.NextDouble() 并且用户输入了不是双精度的东西,即任何类型的字符,我如何重新提示他们输入有效的双精度?我尝试抛出异常并捕获它,但我要做的就是告诉他们这是错误的,我不确定如何将控制权转移回 try 块。如果有人有任何意见,将不胜感激!
谢谢
oop - 面向对象设计 - 专业化:继承与属性
我通常会遇到一些设计问题,在这些问题中我可以选择通过由子类继承来专门化一个类,或者通过为它定义一个对其进行分类的属性来专门化该类。例如,对于汽车的组件集合,我们可以定义类(例如 Wheel、Tire、Door ... 等),或者我们可以定义一个单独的类“CarComponent”,它有一个名为“Type”的属性枚举中列出不同类型的汽车组件的值。
我们如何比较这两种方法,以及它们各自推荐的设计模式是什么?
谢谢。
oop - 面向对象设计的新手
我是面向对象设计的新手。我期待一些关于如何使用对象对以下提到的需求进行建模的技巧。
要求:一个程序有很多学生。一个程序登录到应用程序。第一页显示属于该计划的所有学生的表格(表格列 - Id、名字、姓氏、年龄、性别等)。Id 是一个链接。通过单击 ID,将显示单个学生页面。在此页面中,可以完成与个别学生相关的活动 - 例如。编辑地址,更改名称,添加评论等。
我的解决方案:两个班
程序 - 将对单个程序进行建模,执行与其相关的所有活动并封装所有与程序相关的数据库表。
学生 - 将为单个学生建模并执行与其相关的所有活动并封装所有学生特定的数据库表。
到目前为止,一切都很好。
为了获取与程序相关的所有学生的详细信息,我需要从 Program 对象调用一个名为“ fetch_student_details ”的方法。
问题是这个方法应该写在哪里?它应该是学生类方法还是程序类方法。
如果我在程序类中编写此方法,程序类将如何处理它?
(a) 首先确定属于它的 student_ids 列表,对于每个 id,实例化一个 Student Class 并从中获取特定的学生相关信息。DB:每个实例化的学生对象都将运行一个查询来获取其信息。所以 100 个学生,100 个查询。
或者
(b) 获取与程序相关的学生id列表,直接获取所有学生的学生信息。Db:单个查询以获取所有需要的信息。
uml - 状态图、状态机图和状态转移图的区别
状态图、状态机图和状态转换图有什么区别?虽然在几个地方我了解到状态图和状态机图的含义相同,但在某些地方显示为不同。我只能确定状态图表示系统在某个时刻所处的状态而状态机图则显示对象及其在其整个生命周期中之间的转换。
ruby - Ruby 中的模块加载问题
我有一种情况,我可以从一个文件而不是另一个文件访问模块的功能。这些文件都在同一个目录中。我将尽我所能重新创建代码:
目录结构:
库/AutoConfig.rb
库/文件生成器.rb
lib/modules/helper.rb
AutoConfig 文件是应用程序的主要主力。当它调用myhelper
模块函数时,它不会给我带来任何问题。AutoConfig 中途调用FileGenerator.generatorFunction
.
也包含相同的FileGenerator.generatorFunction
模块功能,但由于某种原因,当我运行程序时出现以下错误:
我已经在这几个小时尝试了许多不同的组合,但无法弄清楚我哪里出错了。任何帮助,将不胜感激。
java - Java OOP 概念
综上所述,如果说MyClass
是类,public static void main(String[] args)
是方法,那么我想知道代码的哪一部分会被认为是对象。
如果说类有对象,对象有方法,那么在上面的代码中,对象是哪一部分?这里有创建对象吗?
c++ - 面向对象的酒店预订系统设计
我正在为即将到来的面试练习面向对象设计。我的问题是关于酒店预订系统的设计: - 系统应该能够返回特定类型的开放房间或返回酒店中的所有开放房间。- 酒店有多种类型的房间,如普通、豪华、名人等。
到目前为止,我已经提出了以下课程:
我对检查类型的hotel.search() 方法的实现感到困惑(我认为应该以某种方式通过多态性处理)。有没有更好的方法来设计这个系统,以便在不明确检查对象类型的情况下实现 search 和 allOpenRooms 方法?
oop - 需要类/数据结构
我正在开发一个具有如图所示的类层次结构的项目。它有很多课程,但我正在展示其中的一些。问题是有些属性在许多类中重复,但不是在所有类中重复。我想通过创建一个具有公共属性的新类来减少这种情况,并将该类用作所有类中的实例变量。这样我就可以维护我的课程,而不是维护整个代码中的所有事件。这些属性没有操作,类也有方法,所以它确实满足类的定义。该类具有许多级别的继承,如果创建子类,那么它就会出现溜溜球问题,所以我不希望它们被进一步子类化。我想知道有没有其他方法?或任何更好的方法来做到这一点。