Метод абстрагирования. Что такое абстрагирование? Метод абстрагирования и его цели

Здравствуйте, дорогие читатели! Вам когда-нибудь хотелось оказаться где-нибудь в параллельной вселенной – вдали от суеты, проблем и разногласий? В бесконечном потоке жизни психика человека так устает, что не справляется с переработкой и восстановлением энергии. В этом случае помогает умение абстрагироваться. Вы спросите: «абстрагироваться – что это означает?».

От слова абстрагирование – мысленное отвлечение, отстранение . Проще говоря, это способность отделяться от чего-либо (ситуации, эмоций, чувств и т.п.), с целью посмотреть на это со стороны или на время прервать прямой контакт.

Делается это для того чтобы привести мысли в порядок, и принять взвешенное решение. Умение абстрагироваться имеет огромное значение в жизни человека, так как помогает справляться с жизненными трудностями, стрессом и объективно оценивать любую проблему. Чтобы узнать, в каких ситуациях вы можете применить методики абстрагирования и как этому научиться, читайте дальше.

Когда нужно абстрагироваться? Методы абстрагирования

Для простоты освоения метода, рассмотрите отдельные примеры отстранения. У вас уже сегодня будет возможность начать тренироваться данным приемам.

Абстрагирование от ситуации и от проблем

Если ситуация зашла в тупик, или вы испытываете слишком много негативных эмоций, проще всего абстрагироваться и посмотреть на нее со стороны. Тогда вам удастся увидеть другие возможные решения. Как это сделать?

Методика: прикройте глаза и представьте, что вы – это абсолютно другой человек, он не испытывает того, что чувствуете вы, он не знает того, что знаете вы. Спросите этого человека, что он думает об этой ситуации, как он видит в ней вас, других участников, как видит и понимает ее причину, что препятствует ее разрешению? Вы буквально услышите ответ в своей голове. Данная методика работает также при абстрагировании от проблем.

Абстрагирование от человека

Оно может быть физическим или эмоциональным. Временное или полное абстрагирование от человека может быть полезным в нескольких случаях:

  • когда нужно разобраться в собственных чувствах и эмоциях;
  • когда происходит нарушение ваших личностных границ;
  • когда человек пытается нанести вам физический или психологический ущерб (в этом случае рекомендуется полное абстрагирование, т.е. навсегда);
  • когда вы мечетесь между несколькими решениями.

Методика: физическое абстрагирование – переезд в другое место или в другую комнату; также вы можете выйти на улицу в разгар ссоры, например, это тоже будет физическое абстрагирование.

Если вы стремитесь к эмоциональному абстрагированию, то, во-первых , необходимо прекратить прямой контакт с человеком (перестать спорить, доказывать свою точку зрения и выслушивать его).

Во-вторых , успокоиться, ведь пока вы на эмоциях, никакие здравые мысли не смогут прийти вам на ум.

В-третьих , постараться встать на место этого человека (спросить себя, почему он ведет себя так, почему так поступил, чего он хотел и т.д.).

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

Абстрагирование от работы

Когда это можно применять? В период эмоционального выгорания, когда вы чувствуете отвращение от работы. Также, когда вы сильно устали и переутомились. Абстрагирование в подобных ситуациях помогает не измотать себя и не потерять интерес окончательно. Помимо этого в состоянии сильной усталости вы можете навредить другим людям и себе.

Методика: займитесь чем-то отвлеченным. Например, если вы много работаете за компьютером, запишитесь на фитнес или капоэйру. Если же ваша основная деятельность имеет физический характер, наоборот, потратьте время на духовное развитие, искусство. Когда работы очень много, выделяйте несколько минут на прослушивание красивой музыки (желательно в наушниках) и созерцание прекрасного. Вы просто еще не задавались изучением вопроса и какие лечебные свойства она оказывает на здоровье, развитие и жизнь в целом. Советую изучить.

Абстрагирование от суеты и шума

В этой ситуации также помогает музыка и медитация. Хорошо работает методика уединения. Для этого достаточно выбрать безлюдное или немноголюдное место, куда нужно приезжать хотя бы на 30 минут каждый вечер .

Желательно, чтобы оно удовлетворяло ваши эстетические потребности (природа, красивый вид). Не просто так наши предки обращались к силам природы за восстановлением жизненных сил и гармонии.

Абстрагирование от мира и общества

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

Бывает, что человек сам привязывает себя к определенным канонам, формирующимся в процессе его воспитания и становления в обществе. И так получается, что хочет он одного, а установки гласят другое. Чтобы разобраться в своих истинных ценностях и потребностях, важно научиться выносить себя за грани социальной единицы , представлять себя не только частью систему, но и уникальным существом, аналогов которому нет.

Методика: ассоциируйте себя со стихией или явлением. Например, представьте, что вы ветер (лучше это делать на открытом воздухе, ощущая хотя бы легкий ветерок ), вы парите над землей и для вас не существует преград. Вы проникаете сквозь щели домов, прикасаетесь к листьям, волнуете море. Вы можете увидеть любой уголок планеты, любого человека. Что вы видите? Что при этом чувствуете? Глядя на какие моменты, вы ощущаете счастье?

Абстрагирование от негатива, негативных эмоций

Для этого вы можете начать развивать позитивное мышление. Чаще всего застревание в негативных переживаниях связано с неумением видеть обратную сторону медали и выносить полезную информацию из отрицательного опыта, а также неумением отдыхать.

Методика: если нет возможности абстрагироваться от источника стресса, значит нужно позволять себе эмоциональное абстрагирование на некоторые промежутки времени. В конце каждого часа давайте себе 10 минут релаксации . Полностью погружайтесь в деятельность, которая приносит вам наслаждение – рисование, пение, разгадывание кроссворда, чтение, общение.

Абстрагирование от времени

Время летит, а люди пытаются за ним угнаться, все успеть. В итоге пропускают свою жизнь. Иногда полезно отключить все предметы техники, убрать часы подальше и провести целые выходные рядом с близкими людьми, заняться любимым делом.

Для большинства людей не думать о времени – это целая проблема. Поэтому такие передышки давать себе нужно хотя бы раз в неделю. Позволять жизни просто течь, без рамок и ограничений.

В заключении

Учитесь абстрагироваться от различных ситуаций и проблем, и вы сможете увидеть себя и свою жизнь совсем под другим углом. Это поможет вам не паниковать лишний раз, не переживать по пустякам, улучшить качество жизни и работы, наладить общение с другими людьми, понять самого себя и свои истинные желания. Чтобы быстрее научиться методам абстрагирования, почитайте статью об абстрактном мышлении, поиск по сайту вам в помощь.

Если вам понравилась эта статья, расскажите о ней своим друзьям в социальных сетях. А также не забудьте подписаться на обновления. Всего вам наилучшего, друзья. До встречи!

Абстрагирование (этот термин произошел от латинского слова abstractio, что обозначает отвлечение) определяет взгляд на ситуацию, человека или предмет с отстраненной точки восприятия. Таким образом, происходит отвлечение от конкретики и способность оценить ситуацию вообще. Понятие абстрагирования сыграло важнейшую роль в развитии множества наук.

Абстрагирование - пример

Любое абстрагирование требует двух действий: первое – это мелких и незначительных деталей, второе – сосредоточение внимания на явлении в общем и важных, значимых деталях.

Например, для того, чтобы изучить движение, сначала отбрасывают криволинейное движение во всех его разновидностях, затем – ускоренное движение, и в итоге для рассмотрения остается наиболее чистая и простая его форма, отражающая саму его суть. Таким образом, абстрагирование являет собой тенденцию фокусировки на идеальных условиях.

Не смотря на то, что это кажется элементарным, именно абстрагирование позволило вычленить и изучить важнейшие понятия – скорость, время, расстояние и т.д. Отсюда получаем, что абстрагирование - метод познания.

Этот метод позволяет отбросить менее значимое, вторичное, и сконцентрироваться на важнейшем. Не секрет, что в жизни человека нередко возникают ситуации, в которых важно определиться с главным направлением и не растрачивать силы попусту, распыляясь по мелочам. Определиться с этим первостепенным делом и поможет абстрагирование. Абстрагирование и конкретизация

У каждого понятия есть и своя противоположность. Абстрагирование и конкретизация – это как взгляд вблизи и издали. Стоя близко, вы рассмотрите все в мелочах (конкретизация), а стоя далеко, вы сможете оценить понятие в целом, не отвлекаясь на мелочи (абстрагирование). Таким образом, это два противоположных понятия.

Это легко проиллюстрировать примером. Если вы говорите «я буду худеть» - это абстракция. А если вы говорите «Я откажусь от сладкого и буду делать утренние пробежки» - это уже конкретика.

Метод абстрагирования и его цели

Абстрагирование в психологии и других науках позволяет достичь целого спектра целей, которые помогают более глубоко познать сущность явления, предмета или человека. Этот аналитический метод позволяет отбросить ряд конкретных ситуаций и взглянуть в целом, благодаря чему достигаются следующие цели:

Использовать абстрагирование можно в самых разных ситуациях. Отдаляясь от незначащих деталей, гораздо проще сконцентрироваться на самой сути интересующего явления.

Абстрагирование - метод научного познания в форме операции мысленного отвлечения от ряда свойств, связей и отношений иссле­дуемого объекта, которые несущественны для решения поставленных задач. Операция отвлечения равносильна операции выделения в объ­екте существенных свойств, связей и отношений. Результат процес­са абстрагирования называют абстракциями (с лат. - отвлечение) или абстрактными предметами.

Разовый цикл абстрагирования носит двухступенчатый характер. На первой ступени абстрагирования определяются несущест­венные свойства и связи, которыми можно пренебречь, отделить су­щественное от несущественного, вычленить наиболее важное и инте­ресное для исследователя. Объективным основанием для такого вы­членения является относительная независимость или пренебрежимо слабая зависимость изучаемых явлений и их составляющих от опре­деленных факторов.

Подготовка акта абстрагирования (отвлечения) состоит, во-­первых, в установлении того, что является общим для многих пред­метов определенного класса. Так, например, подготовка к формирова­нию абстракции «живое существо» требует обнаружения общего для всех живых существ и в то же время отличающего их от неживых объектов. Таким свойством является способность к обмену веществ. Для абстракции «человек» общим и существенным будут отличи­тельные признаки сознательного отражения среды; для всех сущест­вующих товаров, которые могут обмениваться друг на друга, будет понятие меновой стоимости и т.д.

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

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

Операция абстрагирования может применяться многократно как к реальным, так и абстрактным объектам. Переходя от одного уровня абстрагирования к другому, постепенно отвлекаясь от ряда свойств получают (в зависимости от задачи) абстракции все возрастающей степени общности, Так, например, отвлекаясь от множества свойств конкретного человека, можно построить абстрактную цепочку: муж­чина - человек - живое существо - материальный объект - биологи­ческая форма материи - материя. Как видно, высшие формы абстракции - это философские категории и их системы.


Исходя из различия целевых характеристик, в современной нау­ке наиболее широкое применение находят абстракции следующих основных типов:

1. Изолирующая абстракция. Предполагает выделение свойств и отношений, присущих тому или иному предмету, мысленное отделение этих свойств и отношений от самого предмета, придание им ста­туса самостоятельного существования. Примерами таких абстрактных предметов могут служить понятия: растворимость, устойчивость надежность, красота, простота, белизна и т.д.

2. Обобщающая абстракция. Здесь отвлекаются от индивидуальных особенностей и черт предметов с выделением таких их общих признаков, которые позволяют вводить в рассмотрение классы предметов. Так, используемые в металлообработке резцы, сверла, фрез протяжки, напильники, ножовки и т.п. с помощью обобщающей абстракции образуют понятие класса «металлорежущий инструмент».

3. Абстракция потенциальной осуществимости, при которой отвлекаются от реальных границ конструктивных возможностей человеческого сознания, связанных с ограниченностью жизни человека в пространстве и времени. С этой точки зрения бесконечность выступает уже не как непосредственно данная, актуальная, а как потенциально осуществимая. Эта абстракция лежит в основе конструктивной математики, теории алгоритмов, абстрактных автоматов и других теорий.

4. Абстракция как продукт идеализации, образованная посредством предельного абстрагирования от свойств реальных предметов. Полученные абстракции (идеализированные объекты) широко рас­пространены в науке: точка, прямая, инерция, точечный электриче­ский заряд, абсолютно черное тело, несжимаемая жидкость, сплош­ная среда, идеальный газ. Идеализированные объекты составляют важный арсенал понятий научного знания, без которого оно функцио­нировать не может.

Система абстракций образует научный язык, посредством кото­рого формируются и формулируются понятия: научный факт, научная проблема, научная идея, научная гипотеза, научный закон, научная теория.

) с целью выделения их существенных, закономерных признаков. Результат абстрагирования - абстрактные понятия, например: цвет, кривизна, красота и т. д.

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

Виды абстракции

Некоторые типы абстракции:

  • примитивная чувственная абстракция - отвлекается от одних свойств предмета или явления, выделяя другие его свойства или качества (выделение формы предмета, отвлекшись от его цвета или наоборот). В силу бесконечного многообразия действительности никакое восприятие не в состоянии охватить все её стороны, поэтому примитивная чувственная абстракция совершается в каждом процессе восприятия и неизбежно связана с ним.
  • обобщающая абстракция - даёт обобщённую картину явления , отвлечённую от частных отклонений. В результате такой абстракции выделяется общее свойство исследуемых объектов или явлений. Данный вид абстракции считается основным в математике и математической логике .
  • идеализация - замещение реального эмпирического явления идеализированной схемой, отвлечённой от несущественных для данного исследования реальных атрибутов. В результате образуются понятия идеализированных (идеальных) объектов («идеальный газ », «абсолютно чёрное тело », «прямая » и др.
  • изолирующая абстракция - тесным образом связана с непроизвольным вниманием, поскольку при этом выделяется то содержание, на котором сосредоточивается внимание.
  • абстракция актуальной бесконечности - отвлечение от принципиальной невозможности зафиксировать каждый элемент бесконечного множества [ ] , то есть бесконечные множества рассматриваются как конечные [ ] .
  • конструктивизация - отвлечение от неопределённости границ реальных объектов, их «огрубление».

По целям:

  • формальная абстракция - выделение таких свойств предмета, которые сами по себе и независимо от него не существуют (форма или цвет). Этот тип абстракции служит основой усвоения детьми знаний, описывающих предметы по их внешним свойствам, что служит предпосылкой теоретического мышления.
  • содержательная абстракция - вычленение тех свойств предмета, которые сами по себе обладают относительной самостоятельностью (клетка организма). Этот тип абстракции у учащихся развивает способность оперировать ими.

Абстрактное и конкретное

Абстрактное мышление подразумевает оперирование абстракциями («человек вообще», «число три», «дерево», и т. д.), конкретное мышление имеет дело с конкретными объектами и процессами («Сократ», «три банана», «дуб во дворе», и т. д.). Способность к абстрактному мышлению является одной из отличительных черт человека, которая, вероятно, сформировалась одновременно с языковыми навыками и во многом благодаря языку (так, нельзя было бы даже мысленно оперировать «числом три» вообще, не имея для него определённого языкового знака - «три», поскольку в окружающем нас мире такого абстрактного, ни к чему не привязанного понятия, попросту не существует: это всегда «три человека», «три дерева», «три банана» и т. п.).

Определение через абстракцию

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

Наименование параметра Значение
Тема статьи: Абстрагирование
Рубрика (тематическая категория) Программирование

ОБЪЕКТНАЯ МОДЕЛЬ

Объектно-ориентированный подход основывается на совокупности ряда принципов, называемой объектной моделью .

Главными принципами являются: абстрагирование, инкапсуляция, модульность, иерархичность. Главные они в том смысле, что без них модель не будет объектно-ориентированной.

Кроме главных, назовем еще три дополнительных принципа: типизация, параллелизм, сохраняемость. Называя их дополнительными, мы имеем в виду, что они полезны в объектной модели, но не обязательны.

Люди развили чрезвычайно эффективную технологию преодоления сложности. Мы абстрагируемся от нее. В случае если мы не в состоянии полностью воссоздать сложный объект, то приходится игнорировать не чересчур важные детали. В результате мы имеем дело с обобщенной, идеализированной моделью объекта.

К примеру, изучая процесс фотосинтеза у растений, мы концентрируем внимание на химических реакциях в определœенных клетках листа и не обращаем внимание на остальные части – черенки, жилки и т.д.

Абстракция – совокупность существенных характеристик некоторого объекта͵ которые отличают его от всœех других видов объектов и, таким образом, четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа.

Абстрагирование – процесс выделœения абстракций в предметной области задачи.

Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности поведения от несущественных. Такое разделœение смысла и реализации называют барьером абстракции . Установление того или иного барьера абстракции порождает множество различных абстракций для одного и того же предмета или явления реального мира. Абстрагируясь в большей или меньшей степени от различных аспектов проявления реальности, мы находимся на разных уровнях абстракции .

Для примера рассмотрим системный блок компьютера. Пользователю, использующему компьютер для набора текста͵ не важно, из каких частей состоит данный блок. Стоит сказать, что для него это – коробка с кнопками и возможностью подсоединœения внешних запоминающих устройств. Он абстрагируется от таких понятий, как ʼʼпроцессорʼʼ или ʼʼоперативная памятьʼʼ. С другой стороны, у программиста͵ пишущего программы на языках низкого уровня, барьер абстракции лежит намного ниже. Ему крайне важно знать устройство процессора и команды, понимаемые им.

Является полезным еще один дополнительный принцип, называемый принципом наименьшего удивления . Согласно ему абстракция должна охватывать всœе поведение объекта͵ но не больше и не меньше, и не привносить сюрпризов или побочных эффектов, лежащих вне ее сферы применимости.

Все абстракции обладают как статическими, так и динамическими свойствами. К примеру, файл как объект требует определœенного объёма памяти на конкретном устройстве, имеет имя и содержимое. Эти атрибуты являются статическими свойствами. Конкретные же значения каждого из перечисленных свойств динамичны и изменяются в процессе использования объекта: файл можно увеличить или уменьшить, изменить его имя и содержимое.

Будем называть клиентом любой объект, использующий ресурсы другого объекта͵ называемого сервером . Мы будем характеризовать поведение объекта услугами, которые он оказывает другим объектам, и операциями, которые он выполняет над другими объектами. Этот подход концентрирует внимание на внешних проявлениях объекта и реализует так называемую контрактную модель программирования . Эта модель состоит в следующем: внешнее проявление объекта рассматривается с точки зрения его контракта с другими объектами, в соответствии с этим должно быть выполнено и его внутреннее устройство (часто – во взаимодействии с другими объектами). Контракт фиксирует всœе обязательства, которые объект-сервер имеет перед объектом-клиентом. Другими словами, данный контракт определяет ответственность объекта – то поведение, за ĸᴏᴛᴏᴩᴏᴇ он отвечает.

Каждая операция, предусмотренная контрактом, однозначно определяется ее сигнатурой – списком типов формальных параметров и типом возвращаемого значения (в языке С++ тип возвращаемого значения не является частью сигнатуры). Полный набор операций, которые клиент может осуществлять над другим объектом, вместе с правильным порядком, в котором эти операции вызываются, принято называть протоколом . Протокол отражает всœе возможные способы, которыми объект может действовать или подвергаться воздействию. Тем самым протокол полностью определяет внешнее поведение абстракции.

Пример.
Размещено на реф.рф
В тепличном хозяйстве, использующем гидропонику, растения выращиваются на питательном растворе без песка, гравия и другой почвы. Управление режимом работы парниковой установки – очень ответственное дело. Оно зависит как от вида выращиваемых культур, так и от стадии выращивания. Нужно контролировать целый ряд факторов: температуру, влажность, освещение, кислотность и концентрацию питательных веществ. В больших хозяйствах для решения этой задачи часто используют автоматические системы, которые контролируют и регулируют указанные факторы. Цель автоматизации состоит здесь в том, чтобы при минимальном вмешательстве человека добиться соблюдения режима выращивания.

Одна из ключевых абстракций в данной задаче – датчик . Известно несколько разновидностей датчиков. Все, что влияет на урожай, должно быть измерено. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, нужны датчики температуры воды, температуры воздуха, влажности, кислотности, освещения и концентрации питательных веществ.

С внешней точки зрения датчик температуры - ϶ᴛᴏ объект, который способен измерять температуру там, где он расположен. Температура - ϶ᴛᴏ числовой параметр, имеющий ограниченный диапазон значений и определœенную точность и означающий число градусов по Цельсию.

Местоположение датчика - ϶ᴛᴏ неĸᴏᴛᴏᴩᴏᴇ однозначно определœенное место в теплице, температуру в котором крайне важно знать. Таких мест, вероятно, немного. Для датчика температуры при этом существенно не само местоположение, а только то, что данный датчик расположен именно в данном месте.

Рассмотрим элементы реализации нашей абстракции на языке С++.

typedef float Temperature; // Температура по Цельсию

typedef unsigned int Location; // Число, однозначно определяющее

// положение датчика

Здесь два оператора определœения типов Temperature и Location вводят удобные псевдонимы для простейших типов, и это позволяет нам выражать свои абстракции на языке предметной области. Temperature - ϶ᴛᴏ числовой тип данных в формате с плавающей точкой для записи температур.
Размещено на реф.рф
Значения типа Location нумеруют места͵ где могут располагаться температурные датчики.

Рассмотрим обязанности датчика температуры. Датчик должен знать значение температуры в своем местонахождении и сообщать ее по запросу. Клиент по отношению к датчику может выполнить такие действия: калибровать датчик и получать от него значение текущей температуры. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, объект ʼʼДатчик температурыʼʼ имеет две операции: ʼʼКалиброватьʼʼ и ʼʼТекущая температураʼʼ.

struct TemperatureSensor { // Датчик температуры

Temperature curTemperature; // текущая температура в

// местонахождении датчика

Location loc; // местонахождение датчика

void calibrate(Temperature actualTemperature); // калибровать

Temperature currentTemperature(); // текущая температура

Данным описанием вводится новый тип TemperatureSensor. Важным здесь является то, что, во-первых, данные и функции, изменяющие их, объединœены вместе в одном описании, и, во-вторых, мы не работаем непосредственно с данными, а только посредством соответствующих функций. В частности, здесь мы использовали так называемые set- и get-функции , соответственно устанавливающие и возвращающие значения переменных (calibrate – set-функция, currentTemperature – get-функция).

Объекты данного типа вводятся аналогично тому, как и переменные стандартных типов:

TemperatureSensor TSensors; // массив из ста объектов типа

// TemperatureSensor

Функции, объявленные внутри описания, называются функциями-членами . Их можно вызывать только для переменной соответствующего типа. К примеру, калибровать датчик можно так:

TSensors.calibrate(20.); // калибруется датчик номер 3

Поскольку имя объекта͵ для которого вызывается функция-член, неявно ей передается, в списках аргументов функций отсутствует аргумент типа TemperatureSensor, задающий конкретный датчик, над которым производятся действия. К этому объекту внутри функции можно явно обратиться по указателю this. К примеру, в телœе функции calibrate можно написать один из двух эквивалентных операторов

this -> curTemperature = actualTemperature;

Центральной идеей абстракции является понятие инварианта. Инвариант - ϶ᴛᴏ неĸᴏᴛᴏᴩᴏᴇ логическое условие, значение которого (истина или ложь) должно сохраняться. Для каждой операции объекта можно задать предусловия (ᴛ.ᴇ. инварианты, предполагаемые операцией) и постусловия (ᴛ.ᴇ. инварианты, которым удовлетворяет операция).

Рассмотрим инварианты, связанные с операцией currentTemperature. Предусловие включает предположение, что датчик установлен в правильном месте в теплице, а постусловие – что датчик возвращает значение температуры в градусах Цельсия.

Изменение инварианта нарушает контракт, связанный с абстракцией. В случае если нарушено предусловие, то клиент не соблюдает свои обязательства и сервер не может выполнить задачу правильно. В случае если нарушено постусловие, то свои обязательства нарушил сервер, и клиент не может ему больше доверять.

Для проверки условий язык С++ предоставляет ряд специальных средств.

В случае нарушения какого-либо условия следует сгенерировать исключительную ситуацию (исключение) . Объекты могут генерировать исключения, чтобы запретить дальнейшее выполнение операции и предупредить о проблеме другие объекты, которые в свою очередь могут принять на себя перехват исключения и справиться с проблемой. Причиной такого разделœения является то, что объект-сервер, обнаруживший ошибку, может не знать, что предпринимать для ее исправления, а объект-клиент может знать, что делать, но не уметь определить место возникновения.

С++ имеет специальный механизм обработки исключений, чувствительный к контексту. Контекстом для генерации исключения является блок try (пробный блок). В случае если при выполнении операторов, находящихся внутри блока try, происходит исключительная ситуация, то управление передается обработчикам исключений, которые задаются ключевым словом catch и находятся ниже блока try. Синтаксически обработчик catch выглядит подобно функции с одним аргументом без указания типа возвращаемого значения. Для одного блока try должна быть задано несколько обработчиков, отличающихся типом аргумента.

try{ // пробный блок

catch(char * error){. . .} // имя аргумента используется в обработчике

catch(int){. . .} // имя аргумента не используется в обработчике

catch(…){. . .} // обрабатываются всœе исключения

Исключение генерируется посредством указания ключевого слова throw с необязательным аргументом-выражением.

Исключение будет обработано посредством вызова того обработчика catch, тип параметра которого будет соответствовать типу аргумента throw. При поиске подходящего обработчика всœе обработчики просматриваются в порядке их записи.

При наличии вложенных блоков try (к примеру, из-за вложенности вызовов функций) будет использован обработчик самого глубокого блока. В случае если обработчика, соответствующего типу аргумента throw, на данном уровне не будет найдено, будет осуществлен выход из текущей функции (с уничтожением всœех локальных объектов) и поиск в блоке try с меньшей глубиной вложенности и т.д. После обработки исключения управление передается на оператор, следующий за описаниями обработчиков catch.

Пример.
Размещено на реф.рф
Рассмотрим стек, реализованный с использованием массива фиксированной длины.

int stack ; // не более ста элементов в стеке

int top=0; // номер доступного места для помещения элемента

void push(int el) {

if(top = = 100) throw 1; // проверить на переполнение

// (предусловие top < 100)

else stack = el; // поместить элемент в стек

if(top = = 0) throw 0; // проверить на пустоту

// (предусловие top > 0)

else return stack[--top]; // извлечь элемент из стека

try{ // пробный блок

if(i!=k) throw 2; // нарушено постусловие

catch(int error){. . .} // если error = 0, то стек пуст;

// если error = 1, то стек полон; если error = 2, то стек неработоспособен

В примере аргументом throw является целое число – ʼʼномер исключенияʼʼ. В сложных программах разрабатываются специальные типы для исключений, позволяющие передать в обработчик исключения больше информации.

Абстрагирование - понятие и виды. Классификация и особенности категории "Абстрагирование" 2017, 2018.



erkas.ru - Обустройство лодки. Резиновые и пластиковые. Моторы для лодок