Здравствуйте, boot, Вы писали:
B>Здравствуйте, Hard_Club, Вы писали:
H_C>>Как бы вы ответили на собеседовании на вопрос: Что такое ООП?
B>Это совокупление (то бишь, соединение :) ) трех понятий: инкапсуляция, наследование, полиморфизм.
Программирование — это совокупление??
Еще некоторые источники добавляют четвертую парадигму — виртуализация.
Здравствуйте, boot, Вы писали:
B>Здравствуйте, Hard_Club, Вы писали:
H_C>>Программирование — это совокупление??
B>Доходит и до этого, но тогда я называю это программизмом :)
программизмом = программирование + дебилизм?
H_C>>Еще некоторые источники добавляют четвертую парадигму — виртуализация.
B>Может они и правы.
Здравствуйте, Hard_Club, Вы писали:
H_C>Здравствуйте, boot, Вы писали:
B>>Здравствуйте, Hard_Club, Вы писали:
H_C>>>Программирование — это совокупление??
B>>Доходит и до этого, но тогда я называю это программизмом
H_C>программизмом = программирование + дебилизм?
У каждого свое понимание.
H_C>>>Еще некоторые источники добавляют четвертую парадигму — виртуализация.
B>>Может они и правы.
H_C>Тогда какое ее точное определение?
Вам ведь это определение не для составления словаря, а для собеседования. Вот и определитесь для себя. А по Вашему определению опеделят, попали Вы в струю или нет.
Определений много. Если у Вас получится составить одно и все согласятся с этим определением... у меня даже не нет определения для такого случая.
B>Вам ведь это определение не для составления словаря, а для собеседования. Вот и определитесь для себя. А по Вашему определению опеделят, попали Вы в струю или нет. B>Определений много. Если у Вас получится составить одно и все согласятся с этим определением... у меня даже не нет определения для такого случая.
Дело в том, что мое понимание виртуализации пересекается с понятием полиморфизма.
Здравствуйте, Hard_Club, Вы писали:
H_C>Дело в том, что мое понимание виртуализации пересекается с понятием полиморфизма.
Мое тоже. Но их можно и разделить. Полиморфизм означает, что потомок может иметь отличное от родителя поведение, а виртуализация означает, что потомки могут иметь поведение одного из родителей.
Есть еще другое определение ООП -- объединение понятий объект и класс. Это опеделение можно назвать более точным, но, на мой взгляд, это только добавление промежуточного определения, как будто объект и класс можно рассматривать в программировании по отдельности, без всякого контекста.
Но если Вам нужна имменно точность, искать ее лучше в авторитетной книге, чтобы было на что сослаться.
Здравствуйте, boot, Вы писали:
B>Здравствуйте, Hard_Club, Вы писали:
H_C>>Дело в том, что мое понимание виртуализации пересекается с понятием полиморфизма.
B>Мое тоже. Но их можно и разделить. Полиморфизм означает, что потомок может иметь отличное от родителя поведение, а виртуализация означает, что потомки могут иметь поведение одного из родителей. B>Есть еще другое определение ООП -- объединение понятий объект и класс. Это опеделение можно назвать более точным, но, на мой взгляд, это только добавление промежуточного определения, как будто объект и класс можно рассматривать в программировании по отдельности, без всякого контекста. B>Но если Вам нужна имменно точность, искать ее лучше в авторитетной книге, чтобы было на что сослаться.
Мне очень интересна Ваша идея. Только не могу логически прийти к тому, что возможность полного наследования поведения родителя следует называть именно виртуализацией.
Здравствуйте, Hard_Club, Вы писали:
H_C>Мне очень интересна Ваша идея. Только не могу логически прийти к тому, что возможность полного наследования поведения родителя следует называть именно виртуализацией.
Например, родитель "поток", имеет виртуальные методы "считать" и "записать". Но эти методы не определены в абстрактном "потоке" потому, что их реализация в потомках "сетевом потоке", "файловом потоке" и других будут различны, но, тем не менее, должны быть реализованы, хотя бы один из них, иначе это уже не будет "потоком". Получается, виртуализация -- это добавление виртуальных методов в родителя (или базовый класс). А виртуальный метод обязан быть реализован только в потомке. То есть, виртуализация -- вынужденность реализации виртуальных методов родителя в потомках. Наличие только виртуальных методов в базовом классе делает его абстрактным классом.
Здравствуйте, Hard_Club, Вы писали:
H_C>Как бы вы ответили на собеседовании на вопрос: Что такое ООП?
не глядя в википедию, скажу что это парадигма в которой основной строительный элемент программы — это объект,
некоторая сущность, в общем случае имеющая состояние, произвольное число экземпляров.
взаимодействие между объектами происходит путем обмена сообщениями, или иначе говоря объекты вызывают методы друг друга.
H_C>Как бы вы ответили на собеседовании на вопрос: Что такое ООП?
Достаточно обычного тупняка по типу "ООП — это модель/способ разработки, объединяющий такие понятия как: инкапсуляцию, наследование и полиморфизм", а дальше расписать что есть что. В общем неважно что нести, главное упомянуть эти три признака — этого на собеседовании и ждут.
А если на самом деле — то это способ разработки, при котором из множества допустимых абстракций аналитически выделяются цельные сущности(объекты) и модели их взаимодействия.
Может ли ООП обойтись без наследования? Да запросто!
Насколько необходим для ООП полиморфизм? Он не является необходимым — можно и без него разрабатывать объектно-ориентированные системы.
А как же инкапсуляция? Это, как и остальные "признаки" лишь приятный бонус. Наличие/отсутствие инкапсуляции совершенно не является индикатором ООП.
H_C>Как бы вы ответили на собеседовании на вопрос: Что такое ООП?
Выбирай:
Объектно-ориентированное программирование
Объектно-ориентированное проектирование
Общество охраны природы
Особенность-ориентированное позиционирование
Орган опеки и попечительства
Организация освобождения Палестины
Организация Объединенных Планет
Охрана общественного порядка