Новые книги

В книге изложены методы восстановления данных с различных носителей информации – жестких дисков, массивов RAID, CD, DVD, карт флэш-памяти, карт фотоаппаратов и мобильных телефонов. Ремонт поврежденного оборудования рассматривается в издании только как один из аспектов всего процесса извлечения данных. Основная тема – извлечение данных, поврежденных из-за физических или логических нарушений в работе компьютерной системы либо неверных действий пользователя. В книге рассматривается восстановление случайно удаленных файлов, извлечение ценной информации с поломанных жестких дисков; описываются программы и методика восстановления данных с поврежденных массивов RAID, что критически важно для работы корпоративных компьютерных систем.

Книга не требует специальной подготовки читателя: простые пошаговые процедуры восстановления данных предваряются описанием принципов их хранения на различных носителях.
Книга не обещает золотых гор и волшебного преобразования вашей жизни за первую неделю, как по взмаху волшебной палочки. Данный труд направлен на построение грамотной работы в социальных сетях, принципы поиска и взаимодействия с клиентами, основы SMM Маркетинга. Способы продвижения вашего продукта или услуг при помощи соцсетей. Реальный заработок возможно без личных магазинов, товаров и прочих затратных статей. Вы заработаете на своем интеллекте. Здесь приведены конкретные примеры, кто и как зарабатывает на продаже выдуманных услуг, схемы работы мошенников, обещающих 50 000 уже в первую неделю, а то и пару дней. Страницы в социальных сетях ежедневно дублируют нашу жизнь и именно поэтому работать и зарабатывать в этой сфере, а, следовательно, получать живые дивиденды возможно! Здесь вы трудитесь на себя, не в ущерб личному времени и привычному образу жизни. Вы не уйдете от работы в целом, освобождаясь от офиса и ломая рамки серых трудовых будней, но суть ее изменится полностью. Понятие работа перестанет быть «тягостным бременем», а будет служить источником счастливой и успешной жизни. Книга основана на опыте большого количества людей, пытавшихся заработать дополнительные деньги в тот или иной период их жизни. Набивая шишки, попадаясь на фикции, тратя деньги впустую, регистрируясь на не бесполезных сайтах, посещая семинары псевдослециалистов, люди ищут способы мгновенного заработка и прочих 'чудесных' превращений. Всего этого можно избежать, изучив опыт уже рискнувших, давайте учиться на ошибках других, это возможно!

Множественное наследование

2.1.10. Множественное наследование

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

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

Рис. 2.20. Множественное наследование

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

Рис. 2.21. Множественное наследование от непересекающихся классов

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

Использование вложенного простого наследования представлено на рисунке 2.22.

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

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

Рис. 2.22. Реализация множественного наследования с помощью вложенного простого наследования

Рис. 2.23. Реализация множественного наследования путем делегирования с использованием агрегации ролей

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

Рис. 2.24. Реализация множественного наследования с использованием простого наследования и делегирования

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

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

Назад | Содержание | Вперед