Метод абстрагирования: Метод абстрагирования и его формы

Метод абстрагирования и его формы

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

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

Метод сравнения

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

С помощью этого метода сравниваются:

  • отчетные показатели с плановыми,

  • плановые показатели с возможными,

  • плановые показатели с показателями предшествующего периода,

  • показатели организации со среднеотраслевыми и показателями лучших фирм,

  • фактические действия с установленными нормами,

  • фактические качества работников (умения, навыки, знания) с требуемыми: способности работников, их потребности, степень удовлетворения потребностей,

  • цели, нормы, проекты, ресурсы, эффективность,

  • фактические оценки с декларируемыми,

  • имеющиеся методы с используемыми методами,

  • имеющаяся информация с необходимой для решения проблем,

  • новые проблемы с уже известными.

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

Из сказанного следует, что понятие “эффективность” необходимо конкретизировать. Оно выработано экономической наукой и означает соотношение затрат и результатов деятельности. Экономическое происхождение понятия “эффективность” до сих пор сказывается на степени его разработанности. В частности, можно отметить, что применительно к коммерческим организациям данное явление не только хорошо изучено, но является и объектом управления.

В области же государственного и муниципального управления оно находится на стадии теоретического обсуждения, говорить об его использовании для совершенствования практики управления пока не приходится. “Как уже не раз отмечалось, – пишет Г.В. Атаманчук, – главной проблемой государственного управления в целом, и практической деятельности по формированию и реализации его многогранных проявлений в частности, выступает проблема обусловленности, обоснованности и эффективности всех управленческих функций, организационных структур, форм методов и стадий управленческой деятельности”
1
. Механический перенос опыта менеджмента в область государственного управления не дает положительных результатов, поэтому необходим анализ понятия “эффективность”, выявление общего и особенного в его содержании.

П. Друкер – теоретик эффективного

менеджмента

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

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

Разовый цикл абстрагирования носит двухступенчатый характер.

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

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

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

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

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

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

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

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

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

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

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

Система абстракций образует

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

Документация JDK 19 — Главная

  1. Главная
  2. Ява
  3. Java SE
  4. 19

Обзор

  • Прочтите меня
  • Примечания к выпуску
  • Что нового
  • Руководство по миграции
  • Загрузить JDK
  • Руководство по установке
  • Формат строки версии

Инструменты

  • Технические характеристики инструментов JDK
  • Руководство пользователя JShell
  • Руководство по JavaDoc
  • Руководство пользователя средства упаковки

Язык и библиотеки

  • Обновления языка
  • Основные библиотеки
  • HTTP-клиент JDK
  • Учебники по Java
  • Модульный JDK
  • Руководство программиста API бортового регистратора
  • Руководство по интернационализации

Технические характеристики

  • Документация API
  • Язык и ВМ
  • Имена стандартных алгоритмов безопасности Java
  • банок
  • Собственный интерфейс Java (JNI)
  • Инструментальный интерфейс JVM (JVM TI)
  • Сериализация
  • Проводной протокол отладки Java (JDWP)
  • Спецификация комментариев к документации для стандартного доклета
  • Прочие характеристики

Безопасность

  • Руководство по безопасному кодированию
  • Руководство по безопасности

Виртуальная машина HotSpot

  • Руководство по виртуальной машине Java
  • Настройка сборки мусора

Управление и устранение неполадок

  • Руководство по устранению неполадок
  • Руководство по мониторингу и управлению
  • Руководство по JMX

Client Technologies

  • Руководство по специальным возможностям Java

abc — Абстрактные базовые классы — Документация Python 3.

11.2

Исходный код: Lib/abc.py


Этот модуль предоставляет инфраструктуру для определения абстрактной базы классы (ABC) в Python, как указано в PEP 3119 ; см. PEP, почему это было добавлено в Python. (см. также PEP 3141 и Модуль номеров , относящийся к иерархии типов для номеров на основе ABC.)

В модуле коллекций есть несколько конкретных классов, производных от азбуки; они, конечно, могут быть получены в дальнейшем. В дополнение collections.abc В подмодуле есть несколько ABC, которые можно использовать для проверки того, класс или экземпляр предоставляет определенный интерфейс, например, если он hashable или если это сопоставление.

Этот модуль предоставляет метакласс ABCMeta для определения ABC и вспомогательный класс ABC для альтернативного определения ABC через наследование:

класс abc. ABC

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

 из abc импорта ABC
класс MyABC (ABC):
    проходить
 

Обратите внимание, что тип ABC по-прежнему ABCMeta , поэтому наследование от ABC требует обычных мер предосторожности в отношении использование метаклассов, так как множественное наследование может привести к конфликтам метаклассов. Можно также определить абстрактный базовый класс, передав метакласс ключевое слово и использовать ABCMeta напрямую, например:

 из импорта abc ABCMeta
класс MyABC (метакласс = ABCMeta):
    проходить
 

Новое в версии 3.4.

класс абв.ABCMeta

Метакласс для определения абстрактных базовых классов (ABC).

Используйте этот метакласс для создания ABC. ABC может быть подклассом напрямую, и затем действует как смешанный класс. Вы также можете зарегистрировать несвязанный бетон классы (даже встроенные классы) и несвязанные ABC как «виртуальные подклассы» — эти и их потомки будут считаться подклассами регистрируемого ABC встроенной функцией issubclass() , но регистрация ABC не будет отображаться в их MRO (приказе разрешения метода) и не будет реализации, определенные регистрирующим ABC, могут быть вызваны (даже через супер() ). 1

Классы, созданные с помощью метакласса ABCMeta , имеют следующий метод:

регистр( подкласс )

Зарегистрируйте подкласс как «виртуальный подкласс» этого ABC. Для пример:

 из abc импорта ABC
класс MyABC (ABC):
    проходить
MyABC.register(кортеж)
утверждать issubclass (кортеж, MyABC)
утверждать isinstance((), MyABC)
 

Изменено в версии 3. 3: возвращает зарегистрированный подкласс, чтобы его можно было использовать в качестве декоратора класса.

Изменено в версии 3.4: Чтобы обнаружить вызовы register() , вы можете использовать метод Функция get_cache_token() .

Вы также можете переопределить этот метод в абстрактном базовом классе:

__subclasshook__( подкласс )

(Должен быть определен как метод класса.)

Проверить, считается ли подкласс подклассом этого ABC. Это означает что вы можете настроить поведение issubclass далее без необходимо вызвать register() для каждого класса, который вы хотите рассмотреть подкласс АВС. (Этот метод класса вызывается из __subclasscheck__() метод Азбуки.)

Этот метод должен возвращать True , False или NotImplemented . Если он возвращает True , подкласс считается подклассом этого ABC. Если он возвращает False , подкласс не считается подклассом эту азбуку, даже если она обычно была бы одной. Если он вернется NotImplemented , проверка подкласса продолжается обычным механизм.

Для демонстрации этих концепций посмотрите на этот пример определения ABC:

 класс Foo:
    def __getitem__(я, индекс):
        ...
    защита __len__(я):
        ...
    защита get_iterator (я):
        вернуть его (себя)
класс MyIterable(ABC):
    @абстрактный метод
    защита __iter__(я):
        в то время как Ложь:
            урожайность
    защита get_iterator (я):
        вернуть себя.__iter__()
    @классметод
    защита __subclasshook__(cls, C):
        если cls MyIterable:
            если есть ("__iter__" в B.__dict__ для B в C.__mro__):
                вернуть Истина
        вернуть нереализованный
MyIterable.register(Foo)
 

ABC MyIterable определяет стандартный итерируемый метод, __iter__() , как абстрактный метод. Данная реализация здесь все еще можно вызывать из подклассов. Метод get_iterator() также является частью абстрактного базового класса MyIterable , но не имеет для переопределения в неабстрактных производных классах.

Определенный здесь метод класса __subclasshook__() говорит, что любой класс который имеет __iter__() в своем __dict__ (или в одном из его базовых классов, доступ к через список __mro__ ) также считается MyIterable .

Наконец, последняя строка делает Foo виртуальным подклассом MyIterable , хотя он не определяет метод __iter__() (он использует итерируемый протокол старого стиля, определенный в терминах __len__() и __getitem__() ). Обратите внимание, что это не сделает get_iterator доступен как метод Foo , поэтому предоставляется отдельно.

Модуль abc также предоставляет следующий декоратор:

@abc. abstractmethod

Декоратор, указывающий абстрактные методы.

Для использования этого декоратора требуется, чтобы метакласс класса был ABCMeta или происходит от него. Класс, имеющий метакласс, производный от ABCMeta не может быть создан, если все его абстрактные методы не и свойства переопределяются. Абстрактные методы можно вызывать с помощью любого нормальных «супер» механизмов вызова. abstractmethod() можно использовать объявлять абстрактные методы для свойств и дескрипторов.

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

Когда abstractmethod() применяется в сочетании с другим методом дескрипторов, он должен применяться как самый внутренний декоратор, как показано на следующие примеры использования:

 класс С(АВС):
    @абстрактный метод
    def my_abstract_method(я, arg1):
        . ..
    @классметод
    @абстрактный метод
    def my_abstract_classmethod (cls, arg2):
        ...
    @статический метод
    @абстрактный метод
    Def my_abstract_staticmethod (arg3):
        ...
    @свойство
    @абстрактный метод
    Def my_abstract_property (я):
        ...
    @my_abstract_property.setter
    @абстрактный метод
    def my_abstract_property (я, значение):
        ...
    @абстрактный метод
    защита _get_x (я):
        ...
    @абстрактный метод
    защита _set_x (я, значение):
        ...
    х = свойство (_get_x, _set_x)
 

Чтобы правильно взаимодействовать с механизмом абстрактного базового класса, дескриптор должен идентифицировать себя как абстрактный, используя __isabstractmethod__ . В общем случае этот атрибут должен быть True если какой-либо из методов, используемых для составления дескриптора, является абстрактным. Для Например, встроенное в Python свойство эквивалентно:

. Дескриптор класса
:
    . ..
    @свойство
    def __isabstractmethod__(я):
        вернуть любой (getattr (f, '__isabstractmethod__', False) для
                   f in (self._fget, self._fset, self._fdel))
 

Примечание

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

Модуль abc также поддерживает следующие устаревшие декораторы:

@abc.abstractclassmethod

Новое в версии 3.2.

Устарело, начиная с версии 3.3: теперь можно использовать classmethod с abstractmethod() , что делает этот декоратор излишним.

Подкласс встроенного classmethod() , указывающий на абстрактный метод класса. В остальном это похоже на abstractmethod() .

Этот особый случай устарел, так как декоратор classmethod() теперь правильно идентифицируется как абстрактный при применении к абстрактному метод:

 класс С(АВС):
    @классметод
    @абстрактный метод
    def my_abstract_classmethod (cls, arg):
        ...
 
@abc.abstractstaticmethod

Новое в версии 3.2.

Устарело, начиная с версии 3.3: теперь можно использовать статический метод с abstractmethod() , что делает этот декоратор излишним.

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

Этот особый случай устарел, так как декоратор staticmethod() теперь правильно идентифицируется как абстрактный при применении к абстрактному метод:

 класс С(АВС):
    @статический метод
    @абстрактный метод
    def my_abstract_staticmethod (аргумент):
        . ..
 
@abc.abstractproperty

Устарело, начиная с версии 3.3: теперь можно использовать свойство , property.getter() , property.setter() и property.deleter() с abstractmethod() , что делает этот декоратор излишним.

Подкласс встроенного property() , указывающий на абстрактный свойство.

Этот особый случай устарел, так как декоратор property() теперь правильно идентифицируется как абстрактный при применении к абстрактному метод:

 класс С(АВС):
    @свойство
    @абстрактный метод
    Def my_abstract_property (я):
        ...
 

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

 класс С(АВС):
    @свойство
    защита х (я):
        . ..
    @x.setter
    @абстрактный метод
    защита х (я, значение):
        ...
 

Если только некоторые компоненты являются абстрактными, только эти компоненты должны быть обновлено для создания конкретного свойства в подклассе:

 класс Д(С):
    @C.x.setter
    защита х (я, значение):
        ...
 

Модуль abc также обеспечивает следующие функции:

abc.get_cache_token()

Возвращает текущий токен кэша абстрактного базового класса.

Токен — это непрозрачный объект (поддерживающий проверку на равенство), идентифицирующий текущая версия кэша абстрактного базового класса для виртуальных подклассов. Маркер изменяется при каждом вызове ABCMeta.register() на любом ABC.

Новое в версии 3.4.

abc.update_abstractmethods( cls )

Функция для пересчета статуса абстракции абстрактного класса. Этот функция должна быть вызвана, если абстрактные методы класса были реализованы или изменены после его создания.

About the Author

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Related Posts