问题标签 [ooad]

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 回答
6611 浏览

architecture - 什么是抽象与不稳定性图?

我最近使用了 NDepend,它对我的​​ .net 程序集和相关 pdb 产生了很好的报告。

我在报告中发现的最有趣的事情是抽象性与不稳定性图。我想详细了解这一点,我阅读了他们的文档和在线指标,但这只能在一定程度上有所帮助。

首先,我希望了解如何正确评估图形以及稳定控制抽象性的技术。

这里有一篇非常好的文章对此进行了讨论,但除此之外我还需要“我如何控制它?[稳定地控制抽象性]'

替代文字

0 投票
4 回答
808 浏览

methodology - 需要一些解释 OOAD“是”层次结构

我已经购买了带有应用程序的面向对象分析和设计,在第 64 页第 2 段解释了“是”层次结构,如下所示。

就其“是”层次而言,高级抽象是泛化的,而低级抽象是专门化的。因此,我们说 Flower 类比 Plant 类处于更高的抽象级别。

据我了解,我认为植物比植物更概括,然后花类的抽象级别较低。

我想知道此时我的理解是正确的还是书上的正确?请澄清一下。

0 投票
8 回答
2439 浏览

oop - 面向对象的设计资源

我正在寻找学习面向对象设计的好资源(书籍/网站)。我发现的每一个资源都在指导我更多关于 UML 和 RUP 而不是 OO 设计。Head first book 的纯粹重复让我不想读他们的任何书。我正在寻找一本类似于“计算机程序的结构和解释”的面向对象设计的书,以达到教授 OO 的目的。我对任何特定的面向对象语言没有偏好。

0 投票
1 回答
332 浏览

php - 寻找一些关于报告的 OOAD 建议

我需要以多种不同的文件格式创建任意数量的报告。我可以使用 Smarty 模板输出的大多数格式。但是,输出到 Excel 和 PDF 会使事情变得复杂,需要使用 FPDF 或 TCPDF 和 PHPExcel。

我正在尝试找出通过一种或多种设计模式(如果可能)来组织课程的最佳方式。

输出格式:

  • 文字-Smarty
  • 文本(带 PCL 格式) - Smarty
  • CSV - 聪明的
  • HTML - 聪明的
  • Excel - PHPExcel
  • PDF - FPDF / TCPDF

这些格式需要能够在内存中进行流式传输或写入文件以供以后使用。

所有报告唯一一致的是它们需要数据,直到添加 PDF 和 Excel 支持,一个模板。目前我有一个 Report 类,它有一个名为 getData() 的抽象方法。每个子类(例如 SpecificReport)获取它需要的数据并将其存储在类属性中以绑定到模板等。

每个报告都需要以所有格式提供。

Report 类目前处理输出,但添加对 Excel 和 PDF 的支持使这成为不可能。除了像 Smarty 那样将数据绑定到模板之外,还有很多其他功能。每个报告都需要特定的代码。我想我可以在每个报告子类中重载这些方法。

有没有人遇到过类似的任务?

0 投票
8 回答
1391 浏览

oop - 什么是依赖注入的好比喻?

在对非 DI 系统进行编程时,一直困扰着我的一个比喻是“一个人在玩他/她的玩具”。人是对象,人的玩具是对象创建、存储、初始化和操作的任何东西。当玩具达到某种状态时,它们可以发送事件,但它们对使用它们的人一无所知;它们只是带有构成其接口的控制开关的小黑匣子。该人可以监听来自玩具的事件并通过操纵它们的界面做出响应。这个人可以用他/她的玩具做他/她想做的任何事情,但他/她可能不应该去干预他们的内脏,因为它们可能会破裂。

DI 对我的比喻造成的破坏是,它把玩具变成了有意识的存在,知道它们的主人,使用它们的人。玩具可以操纵这个人,但这个人不知道它们是如何工作的,甚至不在乎。该人只是拥有玩具并期望玩具操纵他/她以使玩具自己满意。

怎么回事??听起来很可怕!!
他们用来思考 DI 系统如何工作的一个好的心理隐喻是什么?

0 投票
12 回答
55474 浏览

oop - 我们为什么要使用接口?仅仅是为了标准化吗?

我们为什么要使用接口?

仅仅是为了标准化吗?

0 投票
2 回答
2225 浏览

oop - 多重性的 UML 语法是什么?(类框内)

我知道可以在同一个类框中指定多重性,而不必绘制到另一个类的链接。

我的问题是,多重性应该在名称之后还是类型之后?

是吗:

可见性名称多重性:类型

作为

或者

可见性名称:类型多重性

作为

我有两本书(Larman 和 UML 的应用 UML 和模式以及 Arlow 和 Newstadt 的统一过程),但它们不同

0 投票
3 回答
181 浏览

c# - 在软件中封装用例

我通常为我开发的所有软件编写用例。对于每个用例,我通常编写一个控制器来引导流程(实现一个用例)。

我最近开始使用 Asp.net MVC 开发 Web 应用程序。Asp.net MVC 的最佳实践之一是在控制器中保留非常少的逻辑。我无法弄清楚我将如何改变我的设计来反映这一点。

我基本上想要一种封装我的用例的方法。

0 投票
10 回答
11202 浏览

oop - OOAD书籍推荐:从理论到实践

我正在寻求成为一名优秀的 OO 开发人员。OO 让我很感兴趣,因为我了解模式,知道为什么组合比继承给你更多的灵活性,以及​​更多这样的智慧。但是,我得出的结论是,我知道如何实现单例工厂,但我不知道如何提出健壮的 OO 设计

我有一堆书

  1. GoF 的设计模式
  2. 反模式布朗等人。
  3. Fowler 重构
  4. 代码完成 2

它们可能是非常好的书,但它们不会教您构建应用程序。我经常被一些非常基本的决定(例子)弄得瘫痪。我正在寻找一本书,教什么时候和为什么。有很多关于锤子和钉子的书,但我还没有找到一本能告诉你它们实际关系的书。

哪本书最能帮助你成为自信的 OO 架构师/设计师?

0 投票
3 回答
158 浏览

design-patterns - 需要类设计帮助

我需要开发一个特定的 sw 模块,它以以下格式输出数据主要对象和相关对象和数量

IE

这意味着对于台式计算机对象,应有 1 个 CPU、1 个鼠标、1 个键盘、1 个监视器、2 个扬声器

同样,对于每个 Cubicle 对象,应有 4 个桌面和 1 个电源对象

规则:每 4 个隔间应有一个 HUB 对象

任何人都可以帮助我在 OOP 类/接口方面实现相同的目标吗?或者指向在这种情况下使用的设计模式的指针。非常感谢您的时间