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

javascript - MVC 模式中的“Hello World”

在某公司的面试中,有人问我这个问题。

你知道什么设计模式……然后我被告知要基于 MVC 设计模式编写最简单的“hello world”应用程序。

我想出了一个 JavaScript 程序

后来有人告诉我,警报是一个视图。我知道的关于 MVC 的基本概念是 Model 中的任何更改都会报告给 View。中间有一个控制器来调用这些方法。

您能否更正我的方法,或者为 hello world MVC 应用程序提供替代解决方案。还要解释 MVC 的微妙方面。

谢谢。

0 投票
1 回答
308 浏览

php - 你能为著名的火星探测器应用推荐类结构吗

我希望你们中的许多人可能听说过众所周知的“火星探测器问题”,如果没有,请查看这里http://thefundoowriter.com/2009/10/01/the-mars-rover-problem/我正在研究这个但是我在类和对象方面并不是那么专家,我已经在程序 php 中使这个程序运行良好,但我对基于类、对象的解决方案感到困惑。

应该有哪些类和方法?

0 投票
2 回答
4761 浏览

oop - 面向对象的分析与设计

我正在寻找有关面向对象分析和设计的视频教程/培训甚至讲座。我不需要解释 UML 和用例。我想要解释完整的软件生命周期。

我已经读过Head First: Object Oriented Analysis & Design

这本书实际上有我想要的一切:

需求收集、用例图、类图都应用于实际项目。

我正在寻找类似的东西,其中所有这些主题都在现实生活中的完整项目中得到了解释。

0 投票
6 回答
9170 浏览

java - 这种“instanceof”运算符的使用是否被认为是糟糕的设计?

在我的一个项目中,我有两个“数据传输对象”RecordType1 和 RecordType2,它们继承自 RecordType 的抽象类。

我希望两个 RecordType 对象都由“进程”方法中的同一个 RecordProcessor 类处理。我的第一个想法是创建一个通用的流程方法,它委托给两个特定的流程方法,如下所示:

我读过 Scott Meyers 在Effective C++中写了以下内容:

“任何时候你发现自己在编写‘如果对象是 T1 类型,然后做某事,但如果它是 T2 类型,然后做其他事情,’形式的代码,打自己一巴掌。”

如果他是正确的,显然我应该扇自己耳光。我真的不明白这是多么糟糕的设计(当然,除非有人将 RecordType 子类化并添加 RecordType3 而不向处理它的通用“Process”方法添加另一行,从而创建 NPE),以及我能想到的替代方案涉及将特定处理逻辑首当其冲地放在 RecordType 类本身中,这对我来说真的没有多大意义,因为理论上我想对这些记录执行许多不同类型的处理。

有人可以解释为什么这可能被认为是糟糕的设计并提供某种替代方案,仍然负责将这些记录处理给“处理”类吗?

更新:

  • 改为return null_throw new IllegalArgumentException(record);
  • 澄清一下,一个简单的 RecordType.process() 方法不够用的原因有以下三个:首先,处理与 RecordType 相距甚远,不值得在 RecordType 子类中使用自己的方法。此外,理论上可以由不同的处理器执行大量不同类型的处理。最后,RecordType 被设计为一个简单的 DTO 类,其中定义了最少的状态更改方法。
0 投票
1 回答
235 浏览

oop - OOA 中的类设计

我们想应用OO来设计一个参加考试并得到结果的过程。有两种不同的看法:

  1. 有2个对象:问卷和算法。问卷用于存储问题和最终结果,算法用于计算得到结果;

  2. 有3个对象:问卷、算法和结果,这里将结果分离为一个对象,仅用于存储结果。

我的问题是哪一个是更好的面向对象设计?或者,在这种情况下,正确的 OO 设计是什么?

如果我想记录用户的答案,是否需要创建一个与问题和算法相关的“答案”对象?

0 投票
2 回答
2725 浏览

java - 基本 java - 将值传递给对象数组

我正在尝试将值传递给具有两个属性名称和年龄的数组对象 stemp。将值输入数组的正确语法是什么?上面的语法正确吗?

0 投票
1 回答
123 浏览

php - 如何强制子类使用父类中的方法

我有一个类使用所有子类都需要使用的方法。如何强制所有子类使用该方法?抛出接口?

编辑:我正在使用 php。我的意思是:我有一个名为 toLower() 的方法,我有一个数据库,其中所有列都是大写的,每次从数据库中获取对象时,我都需要使用 toLower() 方法将对象属性设为小写。我希望能够强制客户端用户在获取结果时使用该方法。

0 投票
2 回答
412 浏览

c# - 为多层消息对象分解基类/接口的最佳方法?

使用 C#、ASP.NET、MVC、WCF 时,假设您有一个非公共业务逻辑服务层,并且出于安全和其他此类原因,您有一个公开公开相同操作的网关或外观层。

因此,您有两个具有基本相同数据传输(请求/响应)对象的层,除了公共/公开服务层需要处理代表调用用户的 GUID,而私有/内部服务层需要处理更丰富的身份验证票。此身份验证票证不得暴露给公共层。

是否有一种有效的方法来派生基类或在此处利用接口,以便将私有 AuthenticationTicket 与公共层屏蔽,但最大限度地减少私有和公共 DTO 之间区分属性的剪切和粘贴?

0 投票
4 回答
1523 浏览

php - 使我的身份验证系统成为单例类的利弊

我面临着关于我的应用程序的 OOP 设计的两难境地。我是否应该将身份验证类设为单例。我看到 kohana 框架和 zend 框架将它们的身份验证类用作单例。将身份验证类设为单例有什么缺点?有哪些优点?此外,我正在构建的应用程序将是一个企业应用程序,它需要扩展,那么如果我的身份验证系统是单例的,我的身份验证系统也会扩展吗?

0 投票
2 回答
276 浏览

java - java中private关键字的含义是什么?

以下代码可以完美运行。

现在根据面向对象的设计模型,不应通过对象引用访问私有实例成员(此处已由 c1.real 完成)。

所以,从这个意义上说,应该有编译器错误。但它不反对。

现在根据我的理解是允许的,因为

  1. c1.real 代码写在私有类Complex 类本身的主体中。

  2. Complex 类的开发人员在通过对象引用访问时应该有权访问所有实例成员[无论是私有的、受保护的],因为与任何第三方不同,开发人员非常清楚自己在做什么。这就是为什么这里不遵循面向对象的模型模型的原因。

任何人都可以建议更好地解释为什么这里允许 c1.real 代码吗?