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

ruby-on-rails - 我应该如何在 ruby​​ 中客观化这些数据?

我将以下文本放入一些 Ruby 对象中,以便我可以将它们写入数据库以在 Rails 应用程序中使用。这些数据是波浪预报模型的一些输出,该模型显示了海洋中特定点的海洋膨胀。第一列是日期和小时,然后是组合膨胀(对此不感兴趣),然后是单个膨胀,在任何一个小时内可能出现 1 到 6 个膨胀。

我对日期、涌浪数量以及每次涌浪的信息感兴趣。我所追求的是一个包含天/小时作为键的对象,并且还包含每个膨胀的单独数据。涌浪的数量每小时会有所不同。如果我加载行:

我想通过以下调用从对象中获取信息:

我认为我需要的是一个具有可变长度存储其他对象的对象。那可能吗?关于我应该阅读什么的任何指示?

0 投票
1 回答
91 浏览

ruby-on-rails - 在服务层处理用户请求后报告错误的 OOD

我相信在用户请求期间可能会发生两种类型的错误。

{1}:系统错误(异常、致命错误、警告、通知等)
{2}:用户控制错误(用户做错了什么,通常发生在验证期间)

通常报告{1}相对简单。大多数人只会显示错误页面或通知。{2}的情况不同。

Yii 和 Rails 以及其他一些框架提供了一个验证方案,您可以在其中为模型中的每个属性指定验证器。在验证期间,验证器将验证指定的属性并以映射形式报告错误:attributeName => 错误数组。

在应用程序中,服务层中的服务可能依赖于其他服务的逻辑和域模型的逻辑,因此其属性集和验证也可能依赖于这些外部服务和域模型。

例如,用户注册服务拥有“用户名”和“密码”属性,其逻辑规则可能依赖于用户验证用户名最大长度和密码最大长度的逻辑规则。

所以我的问题是,我们如何通过多层依赖来验证这些属性并将错误报告给用户。

0 投票
2 回答
465 浏览

java - java android视图结构

只是一个简单的也许愚蠢的问题。可以在使用 Inflater 的 android 应用程序中一次使用多个活动吗?我想在我的屏幕上有多个视图而不会丢失以前的视图。例如,用户单击按钮并显示信息屏幕。Start Intent 会将整个屏幕转换为信息屏幕活动。

使用 Inflater 是可行的,但我只是想知道它是否是显示多个视图的正确方法。提前致谢。

0 投票
1 回答
62 浏览

python - 依赖于相同基础的抽象行为?

我希望有人可以帮助我解决我正在处理的设计问题。它专门针对游戏开发领域,但我认为这确实是一个更广泛的问题,可能已经以一种公认的方式解决了。我正在使用 Python。

我有一个 GameObject 类,它保存对象的位置(和其他一般状态属性)和对我的 Engine 对象的引用,该对象保存有关整个游戏世界的信息。GameObjects 可以进一步分类:它们可以是 VisibleGameObjects、PhysicalGameObjects(可碰撞)或两者,具体形式。例如,我可以有一个不可见的边界,它是物理的,但没有可见的表示。

VisibleGameObjects 实现了一个处理绘图功能的 draw() 方法,并通过其父级的 Engine 引用来委托。物理游戏对象具有边界框,并定义处理碰撞的逻辑,还需要访问游戏对象属性(加速度、速度等)

问题是,当我想定义一个需要继承 VisibleGameObject 和 PhysicalGameObject(它们都共享一个父 GameObject)行为的具体对象时会发生什么?据我了解,这种循环继承是一个非常糟糕的主意。

我如何重构它以将特定行为基本上固定到依赖于父抽象类状态的具体子类(可绘制、可碰撞)?

编辑:我的一个想法是将它们分配给 GameObjects 的具体实例作为组件,支持 has-a 关系而不是 is-a 关系。然而,即使这样看起来也不那么干净。尝试通过在“组件”列表中搜索可碰撞组件来检查对象是否可碰撞似乎也不是很好。

0 投票
3 回答
905 浏览

oop - MVC - 从一个模型到另一个模型的数据转换?

在模型视图控制器模式中,数据转换应该发生在哪里?

我有一个存储非常具体的数学数据的模型。我需要将这些数据转换为物理模拟器(只接受某种格式的数据),我想知道它的代码应该放在哪里?一般来说,将一个模型转换为另一种模型的代码放在哪里?

0 投票
1 回答
98 浏览

c# - 我需要在这种情况下使用 BaseClass 吗?

基本上我有一个名为 Asset 的类,它包含我系统中资产的所有信息。这可能会变得很大(资产有缩略图、文件名、元数据、评级、评论等)。

在我的结果页面上,我列出了所有符合特定条件的资产,然后可以使用 jQuery 进行过滤。

我在 IE8 中发现了性能问题,所以我做的第一件事就是查看 Asset 类,看看在页面上显示 Asset 不需要什么。(后来我访问了我的 jQuery,发现这是导致性能问题的原因)。

因此,当我将我的课程剥离到基础知识时,我制作了 BaseAsset 并从中派生了 Asset。

我的问题是,我需要这样做吗?有什么需要吗?

如有必要,我将提供示例,但我暂时避免,因为帖子可能会变得很大:)

0 投票
2 回答
2216 浏览

java - 您将如何为建筑物、楼层和空间设计类结构 - 面向对象

对于这些要求,什么是优雅的 OOP 设计?

“为建筑物、楼层和空间设计类结构。空间可以是公寓、商店或办公室。包括您认为有趣的任何属性、领域和方法。”

我已经尝试过了,但我认为这不是一个好的解决方案:

0 投票
2 回答
631 浏览

oop - 面向对象设计原则抽象

在阅读抽象时,我遇到了以下声明

“抽象仅捕获与当前视角相关的对象的那些细节”

例如。从驾驶员的角度来看,汽车类将是

从机械师的角度来看,汽车类将是

我的问题是,在设计系统时,我们是为一个用户视角(驾驶员或机械师)设计,还是我们可以为多个用户视角设计并根据用户类型进一步抽象?

希望我的问题很清楚。

谢谢

0 投票
1 回答
1306 浏览

entity-framework - 在实体框架 5 POCO 之上构建业务逻辑

我有 ADO.NET 背景,这是我第一次在一个严肃的项目中使用实体框架,所以我继续使用 VS2012 并使用 .NET 4.5 和实体框架 5。

我采用数据优先方法并创建了数据库,生成了 .edmx 并使用此方法将 POCOS 从上下文中分离出来:http: //allen-conway-dotnet.blogspot.co.uk/2013/01 /separating-entity-framework-poco.html

所以我的解决方案如下所示:

现在说我在数据库/ POCO 类中有下表(只是一个例子 - 不是真实的)

现在假设数据库中的所有汽车都有一个 Web 服务,甚至只是一个指向返回 XML 并给我可用部件列表的 URL 的链接。每辆车检索零件数据的方式都不同(一些是 REST,一些是 WCF,一些来自 CSV 文件等)。

所以我想定义扩展 Car 的类并定义一个“GetParts()”方法,该方法将具有特定的业务逻辑来获取该特定汽车的零件。

我还希望能够从数据库中获取所有汽车并循环它们,为每辆汽车调用 GetParts 方法来检索数据。

我在想我需要定义一个接口或抽象类 ICar 来声明 GetParts 方法并以某种方式合并 Car POCO,但对如何进行编码感到困惑。

谁能简要解释一下我如何构建我的代码来完成这项工作,也许建议一种设计模式?

0 投票
1 回答
294 浏览

ruby - 有没有办法在 Ruby 中创建临时命名空间和常量?

我有一堂课:

我想创建一个进程来临时覆盖类及其方法:

Ruby中有这样的东西还是我只是在做梦?无污染的命名空间、临时常量、方法、命名空间、类。干净、专注和优化的代码,没有太多干扰。