В вычисление, объектно-ориентированный пользовательский интерфейс (OOUI ) - это тип пользовательского интерфейса, основанный на метафоре объектно-ориентированного программирования . В OOUI пользователь явно взаимодействует с объектами, которые представляют сущности в домене, с которым связано приложение. Например, многие приложения для векторного рисования имеют OOUI - объекты представляют собой линии, круги и холсты. Пользователь может явно выбрать объект, изменить его свойства (например, размер или цвет) или вызвать другие действия над ним (например, переместить, скопировать или повторно выровнять его). Если бизнес-приложение имеет какой-либо OOUI, пользователь может выбирать и / или вызывать действия над объектами, представляющими сущности в бизнес-области, такие как клиенты, продукты или заказы.
Якоб Нильсен определяет OOUI в отличие от функционально-ориентированных интерфейсов: «Объектно-ориентированные интерфейсы иногда описываются как разворачивающие приложение наизнанку по сравнению с функционально-ориентированными интерфейсами. Основное внимание взаимодействия смещается на становятся данными пользователей и другими информационными объектами, которые обычно представлены графически на экране в виде значков или в окнах ».
Дэйв Коллинз определяет OOUI как демонстрацию трех характеристик:
Джеф Раскин предполагает, что наиболее важной характеристикой OOUI является то, что он использует стиль взаимодействия «существительное-глагол», а не «глагол-существительное», и что это дает несколько преимуществ с точки зрения удобства использования.
Существует значительная потенциальная синергия между концепцией OOUI и другими важными идеи в дизайне пользовательского интерфейса, включая:
Многие футуристические представления пользовательских интерфейсов в значительной степени опираются на концепции OOUI и особенно OOGUI. Однако существует множество примеров пользовательских интерфейсов, которые реализуют одну или несколько из этих идей, но которые на самом деле не являются OOUI, хотя их часто ошибочно называют OOUI. И наоборот, есть примеры OOUI, которые не являются ни графическими, ни используют методы прямого манипулирования, ни используют сильные метафоры. Например, самые ранние версии языка программирования Smalltalk имели интерфейс командной строки, который, тем не менее, также явно был OOUI, хотя впоследствии он стал более известен своей новаторской ролью в разработке Графические интерфейсы, прямые манипуляции и визуальные метафоры.
Хотя существует много концептуальных параллелей между OOUI и объектно-ориентированным программированием, из этого не следует, что OOUI должен быть реализован с использованием an объектно-ориентированный язык программирования.
В рекомендациях для Common User Access IBM (CUA) (возможно, наиболее всеобъемлющая попытка определения стандарта для проектирования OOUI) говорится, что «хотя объектно-ориентированный программирование может облегчить разработку объектно-ориентированного пользовательского интерфейса, это не является обязательным условием. Объектно-ориентированный пользовательский интерфейс может быть разработан с использованием более традиционных языков программирования и инструментов ».
Однако существует сильная синергия. Ларри Теслер, который покинул Xerox PARC в 1980 году и присоединился к Apple, подчеркнул эту взаимосвязь:
Многие наблюдатели предположили, что [] Smalltalk Пользовательский интерфейс и язык Smalltalk - отдельные нововведения. Следовательно, большинство систем, на которые влияет пользовательский интерфейс Smalltalk, были спроектированы без использования подхода реализации Smalltalk. В Apple, после использования Pascal для реализации шести начальных приложений для Lisa, мы обнаружили веские причины изменить наш язык программирования, чтобы включить больше идей из Smalltalk. Приложения Lisa теперь написаны на языке Clascal, расширении Pascal, включающем объекты, классы, подклассы и вызов процедур посредством передачи сообщений.
Там также очевидный синергизм между концепцией OOUI и идеей создания программного обеспечения из объектов домена. Однако из этого не следует, что объекты, которые пользователь видит и с которыми взаимодействует в OOUI, должны соответствовать объектам домена, на которых построено приложение.
В рекомендациях CUA сказано, что «В объектно-ориентированном пользовательском интерфейсе объекты, с которыми работает пользователь, не обязательно соответствуют объектам или модулям кода, которые программист использовал для создать продукт ». Базовые методы проектирования, описанные в CUA, были переработаны в метод OVID, который использовал UML для моделирования интерфейса.
Марк ван Хармелен заявляет, что «объектно-ориентированный дизайн пользовательского интерфейса не требует от дизайнеров объектно-ориентированного взгляда на проблему с самого начала проекта. Более того, даже если дизайнеры во всем придерживаются объектно-ориентированной перспективы, они получат выгоду от отдельного внимания к объектной модели и объектно-ориентированному дизайну пользовательского интерфейса ».
Напротив, голые объекты шаблон - это подход к разработке приложений, который, по крайней мере в своей наивной форме, обеспечивает прямое соответствие между объектами, представленными в OOUI, и объектами нижележащего домена, автоматически генерируя первые из последних.