если ты не знаешь таких элементарных вещей. то я подозреваю... что это только верхушка айсберга.
уверен, если я тебя копну дальше ты не знаешь очь многого.
Вид для печати
если ты не знаешь таких элементарных вещей. то я подозреваю... что это только верхушка айсберга.
уверен, если я тебя копну дальше ты не знаешь очь многого.
[B]Ull9[/B]
Мож попробуем? Только не в С/С++, а в програмировании вообще.
Хотя.
А ответы "шо за бред" приниматься будут?
ну давай,
но не в программировании вообще а в ооп. пойдет?
Без проблем, только желательно без привязки к конкретному языку/компилятору. А если уж и ссылаемся - то указываем точно на каком.
расскажи в 2-3 предложениях, когда применяется паттерн bridge.
для использования функциональности одного класса в другом классе
что нужно применить наследование или делегирование? и почему?
когда нужно применять принцип Liskov?
ау? ты где? в google побежал? :-)
[QUOTE]расскажи в 2-3 предложениях, когда применяется паттерн bridge.[/QUOTE]
Применяется для отделения реализации от абстакции. В результате чего мы можем менять одно и другое независимо.
[QUOTE]для использования функциональности одного класса в другом классе
что нужно применить наследование или делегирование? и почему?[/QUOTE]
Если я хочу релеализовать множественное наследования в языке, в котором его нет (C#, Delphi), то тут поможет только делегирование.
Наследование следует применять в том случае, если я хочу предоставить пользователям моего класса доступ до всех полей класса, функциональность которого я хочу использовать. Но пользователю моего класса необязательно знать о внутреностях класса, тогда делегирование.
[QUOTE]когда нужно применять принцип Liskov?[/QUOTE]
Когда мы наплодили много классов и в них есть явно подобные общие куски. Этот прицип, сформулированый Барбарой Лисков, позволяет выделить один класс как наследник другого, чем упростить реализацию
[QUOTE]ау? ты где? в google побежал? [/QUOTE]
Нет. Я же живой человек. Я должен в обед кушать. Я ктому же на работе. Меня могут вызвать на объект для устранения неисправностей. Така жизнь
и все же 45 минут на ответ... если тебе надо было обедать. не нужно было соглашатся.
что тебе сказать.
первый ответ принимается. второй и третий нет.
каша у тебя в голове, извини.
я не учитель ты не ученик.
мне было бы интересно, пусть кто-то еще выскажется.
Послушаем других.
По поводу принципа Liskov я там немного перемудрил. Может хотелось, что бы я принцип переформулировал?
Здесь у нас тоже, что и когда я здавал вступительные экзамены. Спрашиваю экзаменаторов:
- Вы на украинском понимаете?
- Да, без проблем.
- Ок.
Отвечаю на их вопрос, ответ - вы совершенно неверно отвечаете. А вопросы то лёгкие, врядли думаю. Говорю, давайте я вам на русский переведу. Тогда я ещё тяжело переключался с одного языка на другой. Но невзирая на это, на мой ужасный русский (на тот момент), они меня поняли. Хотя я не сказал ничего нового. Я просто перевёл. Экзамен я сдал.
Так и в нашей ситуации. Я просто не умею ещё говорить такими словами, что бы Вам было понятно.
твой русский я прекрасно понял
но дело совершенно не в нем.
<<Если я хочу релеализовать множественное наследования в языке, в котором его нет (C#, Delphi), то тут поможет только делегирование.>>
если нет множественного наследования, то делегирование не поможет. Это принципиально неверно.
<<Наследование следует применять в том случае, если я хочу предоставить пользователям моего класса доступ до всех полей класса, функциональность которого я хочу использовать.>>
нет, наследование нужно применять когда ты хочешь, чтоб вместо базового, ты мог использовать наследованный класс. доступ тут не главное.
ну и так далее. я вижу, извини, кашу у тебя в голове.
пусть другие скажут.
[B]Ull9[/B]
В данном случае проблема не в русском, а в понимании идиологий. Просто с годами у Вас выработалась привычка говорить "умными шаблонными фразами". Я сходу не могу выразить фразу, которая будет соответствовать научной. Знание/незнание названий/формулировок не мешает использовать это.
Это как у нас в академии. Если преподаватель спрашивает студента и хочет завалить (в нашой ситуации это как раз и должно быть, так как вас на данный момент никто и не удолетворил своим ответом сразу), то задай вопрос, на который сам не знаеш ответ либо знаеш, что этот ответ всегда сможеш дать альтернативный ответ, сославшись на авторитетный источник. Он то правильный, но без глубокого понимания вопроса студент не сможет этого обяснить. А глубина - это иногда и кандидатской попахивает. Разруливал одного психолога я на 5 курсе. Понимаеш, дал определение понятия по автору, который ему не нравиться и соответственно неверно.
[QUOTE=Ull9]а что подробнее? язык программирования надо знать. тут никак не обьедешь.[/QUOTE]
Всмысле какие технологии надо знать:)
Позвольте попробовать :)
[QUOTE]для использования функциональности одного класса в другом классе
что нужно применить наследование или делегирование? и почему?[/QUOTE]
Конечно, всё зависит от конкретной ситуации.
Я считаю, что применять наследование нужно с осторожностью.
Когда без не его не обойтись и когда именно оно наиболее ясно выражает отношение между классами.
Например, к классу А нужно добавить функциональность класса Б.
Если А состоит в отношении "[I]является[/I]" по отношению к Б, то, вероятнее всего, нужно применить наследование.
Если же А "[I]использует[/I]" Б, то -- делегирование.
Если нужно использовать функциональность Б класса в А, и А помимо прочего уже участвует в какой-нибудь иерархии наследования, то кроме делегирования можно попробовать
- "подмешать" функциональность необходимого класса, применив множественное наследование (реализации).
[QUOTE=Яр]
Например, к классу А нужно добавить функциональность класса Б.
Если А состоит в отношении "[I]является[/I]" по отношению к Б, то, вероятнее всего, нужно применить наследование.
Если же А "[I]использует[/I]" Б, то -- делегирование.
[/QUOTE]
правильно, наследование, это очень жесткая связь между класами. ее надо применять весьма осторожно. только тогда когда она точно нужна.
[QUOTE=Яр]
Если нужно использовать функциональность Б класса в А, и А помимо прочего уже участвует в какой-нибудь иерархии наследования, то кроме делегирования можно попробовать
- "подмешать" функциональность необходимого класса, применив множественное наследование (реализации).[/QUOTE]
насколько я понял твою идею, он плохая. см первый ответ.
тут тоже поможет анализирование дизайна по принципу Лисков.
[QUOTE=KoVadim][B]Ull9[/B]. Я сходу не могу выразить фразу, которая будет соответствовать научной. Знание/незнание названий/формулировок не мешает использовать это.
.[/QUOTE]
"Кто ясно мыслит - ясно излагает"
железное правило. если ты видишь перед собой человека, который путается и жалуется на онемение языка, знай. - он незнает.
[QUOTE=THRESHE]Всмысле какие технологии надо знать:)[/QUOTE]
если идешь юниором, надо хорошо знать пожалуй только язык.
[QUOTE=Ull9]если идешь юниором, надо хорошо знать пожалуй только язык.[/QUOTE]
STL считается частью языка ?:) Чему следует уделить особое внимание ?
Какие книги надо обязательно прочитать ?
конечно STL,часть языка. без него никуда
читать? ну блин это много:
Stroustroup "The C++ programming language"
Scott Mayers 2 books
Alexandrescu "Modern C++ programming"
Alexandrescu ... "C++ coding standart"
Gurtovoi "Metaprogramming"
Suttis "STL"
Gamma, Vlicides "Patterns..."
"Pattern Oriented Software architecture" book 2
POSIX
UNIX
рекомендую все читать в оригинале, по английски. чтоб небыло проблем на интервью.