Задача:
Есть две фигуры: прямоугольник и квадрат. Что из них является частным случаем чего?
В школе на уроках геометрии нам объясняли, что у любого прямоугольника есть четыре стороны, два измерения и каждый из его уголов равен 90 градусам. И случай, когда оба измерения равны(когда мы получаем квадрат) является частным.
А что, если взглянуть на проблему глубже и представить квадрат в качестве объекта? С точки зрения объектно-ориентированной концепции, у объекта "квадрат" всего одно поле размера, значение из которого используется для определения обоих измерений. А в объекте "прямоугольник", помимо всего прочего, есть необходимость определять еще и второе поле для другого измерения. Вот и получается, что квадрат является неким абстрактным классом, а класс "прямоугольник" его дополняет.
Этот вопрос часто задают на собеседованиях разработчикам, которые программируют на объектно-ориентированных языках.
И именно благодаря таким нетривиальным загадкам удается выделить очень важное качество успешного кандидата - способность профессионально мыслить.
Разработчики воспринимают тривиальные для обычной жизни вещи, как объекты. Тестировщики нюхом чуют дефекты в лифтах(ох, какой каламбур получился), кофемолках и душевых распылителях. И, наверное, именно с этого, с постановки профессионального мышления, стоит начинать составлять план развития по своей специализации.
А какие вы знаете примеры профессионального мышления?