首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >软件应用程序设计

软件应用程序设计
EN

Stack Overflow用户
提问于 2009-10-08 11:10:30
回答 3查看 181关注 0票数 0

在软件应用程序开发的情况下,是否需要严格的OOD/基于接口的设计/面向方面的设计?

或者,为了便于编码,是否希望将它们全部混合在一起?

所有成功且高度可维护的软件应用程序是严格面向对象的,还是严格面向接口的,还是严格面向方面的,还是两者的混合体?

如果它们如此严格,我应该遵循哪种方法来避免分析瘫痪,同时在这三种情况下实现极其强大的设计?

如果你认为,基于接口的编程和AOP只是OOP的扩展,那么这样想,在基于接口的编程和AOP的概念出现之前,软件是如何设计的?

而且AOP可能还需要AOP容器。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-08 11:35:01

是不是所有成功且高度可维护的软件应用程序都是严格面向对象的,还是严格面向接口的,还是严格面向方面的,还是两者的混合体?

有些应用程序是成功的,有些是高度可维护的。我能想到的一个例子是Artisan Studio,这是一个早期采用的SysML工具,但当我去面试时,它的可维护性非常低。它的设计是组件风格的OO C++ -一个分布式的OO数据库,并使用COM来允许将功能添加为组件;但他们承认在大型遗留代码库上工作有很多困难。我怀疑,现在更便宜、更敏捷的企业架构师UML工具已经有了一个SysML产品,它的成功将会消退。我还没有和EA的设计者谈过,但是EA是建立在SQL数据库后端上的,自动化API显然不是一个纯粹的OO解决方案-例如,您必须使用不同的API更新UML对象的同一属性的不同部分( UML包由包对象和元素元素表示,如果您在一个API中更改包的名称,您必须记住在另一个API中更改它,否则它在包树和任何图中都会有不同的名称)。考虑到添加到EA的功能的速度,以及应用程序的总体感觉质量,我怀疑它比Artisan采用的“更好的面向对象”模型更敏捷,但不能轻松重构。

我没有发现可维护性和成功之间的紧密联系,或者严格的面向对象和成功之间的联系。做所需的工作和重构软件的能力可能对成功更重要。再加上一个好的市场营销部门。

(重构与维护相反-在重构中,您正在更改体系结构,但功能集是静态的;维护涉及添加新功能或从现有体系结构中删除bug)

票数 1
EN

Stack Overflow用户

发布于 2009-10-08 19:19:00

你的问题混淆了软件项目的目标和实现这些目标的手段。像基于接口的设计或AOP这样的东西/流行语可能非常有益(不要误会我:我真的很喜欢它们),但如果它们被用在不合适的地方,它们也可能导致灾难性的结果。

如果你有钉子,那就用锤子。如果你有螺丝,那就用螺丝刀。如果它们都没有,那么这两个工具都不会有用……

票数 1
EN

Stack Overflow用户

发布于 2009-10-08 11:13:09

混杂在一起,也许什么都没有。

任何基于非面向对象语言(例如C语言)的东西都很难满足OO定义所规定的标准。

函数式语言的项目不会遵循上述任何一项。

所有这些“面向”的设计方法论都是如此。方向。你应该能够认识到每种方法的优缺点,并学会基于适当性、复杂性、预算、时间范围、可维护性等在需要的地方进行混合和匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1537125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档