2009-12-12 2 views
3

Может кто-нибудь объяснить мне, какой интерфейс раздувается в ООП (желательно с примером).Что такое раздувание интерфейса?

+0

Я предполагал, что вы говорили о разработке программного обеспечения «интерфейс раздувания» (http://en.wikipedia.org/wiki/Interface_bloat), но ранние ответы предполагают, что вы * можете * говорить о «раздутии функции» или «пользовательском интерфейсе» bloat "(http://apcmag.com/microsoft_humble_pie_over_office_bloat.htm). **Просьба уточнить**. –

ответ

8

G'day,

Предполагая, что вы имеете в виду API, а не графический интерфейс, для меня I/F вздутие может произойти несколькими способами.

  1. API просто продолжает расширяться и расширяться с помощью новых функций без какой-либо формы сегрегации, поэтому вы заканчиваете монолитный заголовочный файл, который становится трудным в использовании.
  2. Функции, объявленные в существующем API, продолжают добавлять новые параметры в свои подписи, поэтому вам необходимо продолжать обновление, а существующие приложения не совместимы с обратными.
  3. Функции в существующем API продолжают перегружаться с очень похожими вариантами, что может привести к затруднению выбора соответствующей функции, которая будет использоваться.

Чтобы помочь с этим вы можете:

  1. Выделим API в ряд заголовков и библиотек, так что вы можете легко контролировать, какие части вы на самом деле нужно. Любые внутренние зависимости должны автоматически разрешаться поставщиком, поэтому пользователю не нужно обнаруживать зависимости путем проб и ошибок, например. что мне нужно включить заголовочный файл wibble.h, когда я только хотел использовать функции в API, объявленные в файле заголовка shozbot.h.
  2. Внесите обновления в API обратно совместимыми, введя перегрузку там, где это применимо. Но вы должны группировать перегруженные функции в категории, например. если новый набор перегруженных функций добавлен в существующий API, скажем our_api.h, чтобы адаптировать его к новой технологии, скажем, SOA, то они предоставляются отдельно в собственном заголовочном файле our_api_soa.h в дополнение к существующему заголовку our_api. час

НТН

2

Большинство продуктов Microsoft?

Интерфейсный налет имеет слишком много на экране сразу, особенно элементы, которые мало используются или запутывают в своей функции. Вероятно, более простой способ описать раздувание интерфейса - это посмотреть на то, что его не имеет, попробуйте Basecamp из 37signals. В заголовке есть только несколько вкладок и несколько ссылок.

Интерфейс bloat можно устранить с помощью сменных панелей (например, с помощью Javascript) или развернуть меню, которые скрывают менее часто используемые варианты, пока они не понадобятся.

+0

Блокнот не включен;) –

+0

Лучший пример с моей точки зрения: интерфейс ленты. –

+1

@Felix Я бы не согласился с ленточкой. Поскольку Office имеет так много опций, должен быть способ быстро найти их, не предоставляя столько информации, что пользователь перегружен. Лента делает это довольно хорошо. Например, чтобы сделать верхний индекс сейчас, мне не нужно нажимать 7 раз - я просто нажимаю один раз. – JasCav

2

Интерфейс наворотов - это постепенное добавление элементов, которые превращают простой, элегантный интерфейс в один, заваленный кнопками, меню, опциями и т. Д. Повсюду, которые разрушают первоначальное целостное восприятие приложения. Одним из примеров, который приходит мне на ум, является iTunes. В ранних версиях это было довольно просто, но со временем добавило довольно много функций, которые можно квалифицировать как раздувание (iTunes DJ, Coverflow, Genius).

1

наворотов Интерфейс иногда вызывается пытается иметь все функции одного клика, так как в этом юмористическом, например:

Too many toolbar buttons

(Хотя смешно, этот пример не справедливо для Firefox, потому что в этом примере пользователь добавил все эти панели инструментов)

Технология проектирования пользовательского интерфейса, называемая «прогрессивное раскрытие», является одним из способов уменьшения интерфейса раздуваться. Выставлять наиболее часто используемые функции в качестве клика верхнего уровня. Если у вас есть менее часто используемые функции, которые по-прежнему достаточно ценны для включения в ваше приложение, группируйте их логически, например. за выпадающим меню или другим навигационным элементом.

+0

+1 для прогрессивного раскрытия –

3

Подумайте о языке OO, где все методы определены в Object, хотя они имеют смысл только для некоторых подклассов. Это был бы самый экстремальный пример.

0

Крайнего пример интерфейс навороты, что большинство программистов на C++ будут знакомы с является std::basic_string. Страница вверх и вниз по страницам функций-членов с небольшими вариациями, большинство из этих функций не должны были быть функциями-членами, но могли быть свободными функциями в библиотеке строк.

+0

Забавно, что никто не упоминает крайний пример раздувания интерфейса JavaScript String. ['String.prototype.fontcolor'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fontcolor) кто-нибудь? – dalle

Смежные вопросы