有人可以向我解释OOP中的界面膨胀是什么(最好用一个例子)。什么是接口膨胀?
什么是接口膨胀?
回答
天儿真好,
假设你的意思是API,而不是图形用户界面,对我来说I/F膨胀可以通过多种方式发生。
- 一个API只是不断扩展和扩展新功能,没有任何形式的隔离,所以你完成了一个单一的头文件变得很难使用。
- 在现有API中声明的函数不断获取添加到其签名的新参数,因此您必须继续升级并且现有应用程序不向后兼容。
- 现有API中的函数会因非常相似的变体而变得过载,这会导致难以选择要使用的相关函数。
为了解决这个问题,您可以:
- 分离出的API为一系列头文件和库,让您可以更容易地控制你真正需要什么零件。任何内部依赖关系都应该由供应商自动解决,以便用户不必通过反复试验来找出依赖关系。当我只想使用shozbot.h头文件中声明的API中的函数时,需要包含头文件wibble.h。
- 通过在适用的地方引入超载来使API升级向后兼容。但是您应该将重载函数分组到类别中,例如如果新的一组重载函数被添加到现有的API,比如说our_api.h,以使其适应新技术,比如说SOA,那么除了现有的头文件our_api之外,它们在它们自己的头文件our_api_soa.h中分别提供。 H。
HTH
大多数Microsoft产品?
界面臃肿在屏幕上一次性显示太多,特别是很少使用的元素,或者在功能上令人困惑。描述界面膨胀的一种更简单的方法可能是看一些没有它的东西,试试37signals中的Basecamp。标题中只有几个选项卡和一些链接。
可以通过可折叠窗格(例如使用Javascript)来修复接口膨胀,或者在需要时隐藏较少使用的选择的向下钻取菜单。
记事本不包括;) – 2009-12-12 17:09:52
从我的角度来看最好的例子:Ribbon界面。 – 2009-12-12 17:24:22
@Felix我不同意Ribbon。因为Office有这么多选择,所以需要有一种快速找到它们的方法,而不必提供太多的信息以致用户不知所措。功能区做得很好。例如,现在要做上标,我不需要点击7次 - 我只需点击一次。 – JasCav 2009-12-12 17:31:55
界面膨胀是逐渐增加的元素,将可能是一个简单,优雅的界面变成一个充满了按钮,菜单,选项等的地方,破坏应用程序的原始凝聚力感。我想到的一个例子是iTunes。在早期的演绎中,它非常简单,但随着时间的推移,增加了许多可能会变得臃肿的特性(iTunes DJ,Coverflow,Genius)。
接口膨胀有时是由试图让每一个功能,点击即可,因为在这个幽默的例子引起:
(虽然好笑,这个例子是不是公平的火狐,因为在这个例子中,用户添加了所有这些工具栏)
称为“渐进式公开”的UI设计技术是一种减少界面膨胀。只能将最常用的功能展示为顶级点击。如果您的应用中包含的应用不太常用的功能仍然非常有价值,那么可以按照逻辑方式对其进行分组,例如,在下拉菜单或其他导航元素后面。
+1为渐进式披露 – 2012-01-27 09:49:30
想到OO语言,其中全部方法在Object中定义,尽管它们只对某些子类有意义。这将是最极端的例子。
接口鼓胀症的一个极端的例子,大多数C++程序员将熟悉是std::basic_string
。成员函数的页面向上和向下翻页只有很小的变化,大多数这些函数不一定是成员函数,但可以是字符串实用程序库中的免费函数。
有趣的是,没有人提到JavaScript字符串的接口膨胀的极端例子。 ['String.prototype.fontcolor'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fontcolor)有人吗? – dalle 2016-10-10 08:08:18
- 1. 为什么CodeIgniter分页链接膨胀?
- 2. 为什么我不能膨胀布局?
- 3. 膨胀异常 - 错误膨胀textview
- 4. setText()膨胀后
- 5. 膨胀溢出
- 6. 表达膨胀
- 7. Codefluent tablediff.sql膨胀
- 8. BinaryInflateException膨胀MapFragment
- 9. 从xml文件膨胀视图是什么意思?
- 10. 为什么菜单不是为你预膨胀的?
- 11. Java:什么是JITC的反思通货膨胀?
- 12. 二进制XML文件,错误膨胀类,是什么问题?
- 13. 什么是直接引用和使用膨胀之间的差异
- 14. 错误膨胀类
- 15. 膨胀Android菜单
- 16. AlarmManager膨胀布局
- 17. 膨胀android系统
- 18. 膨胀机着色
- 19. 膨胀问题MapView
- 20. Android膨胀视图
- 21. 膨胀一个TableRow
- 22. 不能膨胀的片段InflateException错误膨胀的类
- 23. 是否有.ipa文件大小膨胀
- 24. 测试一个布局是否“膨胀”
- 25. 是什么接口
- 26. 什么是接口?
- 27. 什么是接口
- 28. 为什么自定义风格的评级栏错误膨胀?
- 29. Android:什么会导致选项菜单膨胀错误?
- 30. 为什么我不能在Android中膨胀我的碎片?
我认为你是在谈论软件设计“界面膨胀”(http://en.wikipedia.org/wiki/Interface_bloat),但早期的答案表明你可能会谈论“功能膨胀”或“用户界面臃肿“(http://apcmag.com/microsoft_humble_pie_over_office_bloat.htm)。 **请澄清**。 – 2009-12-12 17:15:14