|
|
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Из за того что интерес к Пятничным задачкам остыл - предлагаю новую тему - Пятничный Паттрен - и так мы берем по порядку - один паттрен на java из книги http://vk.com/doc29055700_262036131] Design Patterns in Java Tutorial И рассказываем о том как это паттерн применяется в обычной жизни ... и совсем необязательно в программировании. но пару пример где его нужно применить в коде - указать все таки нужно! Для чего это нужно ?! Таким образом я хочу для себя разобраться в Паттернах - понять где и как они применяются , уметь видеть их в коде и в жизни ... Думаю эта тема будет полезна для всех кто только начал изучать java и кто уже потратил годы ... Первый паттерн : Factory Pattern Shape.java Код: java 1. 2. 3. Rectangle.java Код: java 1. 2. 3. 4. 5. 6. 7. Square.java Код: java 1. 2. 3. 4. 5. 6. 7. Circle.java Код: java 1. 2. 3. 4. 5. 6. 7. ShapeFactory.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. FactoryPatternDemo.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Verify the output. Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 12:30 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Начну Сам : Антипаттерн – публикация this в конструкторе Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. решение - использовать фабричный метод : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 12:57 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. А если у CIRCLE есть поле, например, радиус. То Код: java 1. 2. и чем это лучше: Код: java 1. 2. ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:19 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
no56892, Думаю идея такая : Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:36 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1, Идея в том что вы не создаете - новые объекты где попало и как попало -а берете из из одного места ! К примеру в определенном месте кода Вам надо добавить цвет к фигуре (закрасить ее). И передать дальше по вашей логики в этом методе Вам нужно будет создавать каждый раз новый экземпляр - выставлять ему цвет и отдавать дальше , вопрос как отдавать ? в такой схеме - Proxy метод будет таким : Код: java 1. 2. 3. 4. 5. может кто то придумает более корректную задачу ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 13:50 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Просьба! Если пишите про антипаттеры, то пишите почему так делать не надо! Иначе это выглядит совершенно безапелляционно! В часности, публикация this в конструкторе плоха тем, что если после публикации возникнет исключение, то обьект не будет удален сборщиком мусора, но по факту обьект будет неполностью сконструированым. Кроме того, при публикации this в другой поток, этот другой поток может вызывать методы в то время как в данном потоке еще не завершился конструктор. И возможно еще что-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:15 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
chabapokВ часности, публикация this в конструкторе плоха тем, что если после публикации возникнет исключение, то обьект не будет удален сборщиком мусора... Не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:18 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
BlazkowiczchabapokВ часности, публикация this в конструкторе плоха тем, что если после публикации возникнет исключение, то обьект не будет удален сборщиком мусора... Не понял. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:30 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1, Я так и не понял профита от паттернов проектирования, если честно. Те примеры, в т.ч. в википедии, хорошо смотрятся на идеальных задачах, а если попробовать сделать программу не ради самих паттернов, а для какой-то цели, то все-равно в итоге получится каша. У вас даже для того, чтобы получить цвет фигуры необходимо написать 5 строчек кода. Дак где профит от их использования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:36 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
no56892 Я так и не понял профита от паттернов проектирования, если честно. Те примеры, в т.ч. в википедии, хорошо смотрятся на идеальных задачах, а если попробовать сделать программу не ради самих паттернов, а для какой-то цели, то все-равно в итоге получится каша. У вас даже для того, чтобы получить цвет фигуры необходимо написать 5 строчек кода. Дак где профит от их использования? Паттерны проектирования, на самом деле это не столько руководство к действию, сколько справочник именования типовых подходов. Отсюда и подобное недопонимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:39 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
no56892, Это нормально. Профит бывает не всегда и не везде, а только там где паттерн реально к месту. Некоторые задачи без паттернов получаются короче (иногда - значительно короче), но менее наглядны и менее гибки, и паттерн используют для гибкости. А инога паттерны только мешают... Для каждой конктретной ситуации надо смотреть оправданность применения паттерна. Я вот, например, непонимаю профита от Hibernate - куча конфигов в разных местах, для моих задач быстрей написать инсерты, и кода раз в 5 меньше выходит. Просто скорей всего это значит, что он ненужен для моих задач. ps. Профита от ShapeFactory в таком виде как приведено, тоже не вижу. Разве что эти строки "CIRCLE", "RECTANGLE" и тд приходят извне и известны только на этапе выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:52 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
chabapok, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Но вопрос был про сборщик мусора. В С++, например, в таких случая(исключение в конструкторе) не бывает утечки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 14:57 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Спасибо! корректное замечание! chabapokПросьба! Кроме того, при публикации this в другой поток, этот другой поток может вызывать методы в то время как в данном потоке еще не завершился конструктор. И возможно еще что-нибудь. Думаю это самое главное - в многопоточном программирование использование антипаттерна опасно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:11 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Использование патерна хорошо видно на таком примере : (тут нужно знать Модель памяти Java. ) До завершения конструктора объект может быть не целостным (не все поля инициализированы, не все инварианты состояния выполняются) Источник неприятностей : ссылка на объект доступна другому потоку до создания объекта и нет никаких специальных синхронизаций . Пример небезопасной инициализации Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:16 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Начну Сам : Антипаттерн – публикация this в конструкторе [src java] public class ThisEscape { ... public ThisEscape(EventSource source) { source.registerListener(new EventListener() { public void onEvent(Event e) { doSomething(e); } }); ... } } Антипаттерн вроде как предполагает, что "так делать плохо". Ну и чем же плохо так делать, объясни ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:28 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
MasterZivАнтипаттерн вроде как предполагает, что "так делать плохо". Ну и чем же плохо так делать, объясни ... Вроде как уже привели пример и рассказали!? Давайте так Вы сами - приведете пример! :) так будет лучше - для Вас . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:35 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1решение - использовать фабричный метод : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Самый большой антипаттерн Java-программистов -- это повальный идиотизм. Ну вот нахрена писать в SafeListener вложенный нестатический класс, если можно сам SafeListener уже унаследовать от EventListener и реализовать там этот void onEvent(Event e) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:37 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Наследлование - антипаттерн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:42 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1MasterZivАнтипаттерн вроде как предполагает, что "так делать плохо". Ну и чем же плохо так делать, объясни ... Вроде как уже привели пример и рассказали!? Давайте так Вы сами - приведете пример! :) так будет лучше - для Вас . По мне, пример показывает что не надо(нельзя) чтобы конструктор генерировал исключение, или создавай метод и вызывай после создания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:42 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
no56892Atum1, Я так и не понял профита от паттернов проектирования, если честно. .... Дак где профит от их использования? Паттерны проектирования -- это стандартный способ решить стандартные задачи. Всё, не больше, и не меньше. Если твоя задача совпадает со стандартной, ты можешь её решить этим стандартным образом, уже кем-то придуманным и поделёным с тобой (собственно, поделиться опытом -- и была задача ТОЙ книги). Или ты можешь порвать на груди тельняшку и придумать свой, другой способ. И потом им поделиться с миром. Ну и профит в том, что если тельняшку рвать не охота, можешь сделать, как уже придумали другие. Вот собственно и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:42 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1MasterZivАнтипаттерн вроде как предполагает, что "так делать плохо". Ну и чем же плохо так делать, объясни ... Вроде как уже привели пример и рассказали!? Давайте так Вы сами - приведете пример! :) так будет лучше - для Вас . Я сверху вниз иду и пишу.. потом дальше читаю, потом дальше пишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:43 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
ЛагманMasterZiv, Наследлование - антипаттерн. Ну, если не умеешь им пользоваться -- то да... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:44 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
у java-девелопера почти всё - "паттерн". Даже цикл и операция логического ветвления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 15:44 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
0FDНо вопрос был про сборщик мусора. В С++, например, в таких случая(исключение в конструкторе) не бывает утечки. фраза "Не понял" не является вопросом про сборку мусора. Тот код что я привел - не утечка памяти. Ведь обьект доступен, и пользоваться им можно, другое дело что он недоконструирован что не есть хорошо. А то что вы добавили - не приводит проблемам недоконсруированных обьектов. Сборка мусора не при чем, хотя и добавляет очевидну фичу - раз ссылка на обьект есть, он собран не будет. В с++ точно так же можно опубликовать ссылку на себя в конструкторе и поиметь sigseg когда-нибудь потом. кто-тоНу вот нахрена писать в SafeListener вложенный нестатический класс, если можно сам SafeListener уже унаследовать от EventListener SafeListener может уже наследовать что-то полезное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:13 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
chabapokСборка мусора не при чем, хотя и добавляет очевидну фичу - раз ссылка на обьект есть, он собран не будет. Кто-то путается в показаниях. То безопасная публикация влияет на сборку мусора, а теперь она не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:18 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Кто-то придирается к словам. Вы определенно хотите об этом поговорить. У нас есть ссылка на обьект. Значит он не будет собран. Что именно вам тут неясно? Теперь усложняем: Мы из конструктора опубликовали ссылку на обьект за пределы блока try. Но потом было исключение. Будет ли такой обьект собран? Мы вроде вышли из блока try{}, значит вроде все ок? Но нет. У нас есть опубликованная ссылка на обьект, а значит он не будет собран, значит мы к нему можем обратиться, но он недоконструирован. Что именно вам тут неясно? Что вам не нравится? Если такая формулировка вам не нравится - почему вы не сформулируйте это как считаете нужным? Я знаю - вы можете это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:31 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
chabapokУ нас есть ссылка на обьект. Значит он не будет собран. Что именно вам тут неясно? Я кстати тоже не понял. Потом подумал, и понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:35 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
chabapok0FDНо вопрос был про сборщик мусора. В С++, например, в таких случая(исключение в конструкторе) не бывает утечки. фраза "Не понял" не является вопросом про сборку мусора. Тот код что я привел - не утечка памяти. Ведь обьект доступен, и пользоваться им можно, другое дело что он недоконструирован что не есть хорошо. А то что вы добавили - не приводит проблемам недоконсруированных обьектов. Сборка мусора не при чем, хотя и добавляет очевидну фичу - раз ссылка на обьект есть, он собран не будет. В с++ точно так же можно опубликовать ссылку на себя в конструкторе и поиметь sigseg когда-нибудь потом. Понял буквально, но все равно обьект будет под управлением сборщика и может быть удален сборщиком. То что я привел показывает, что даже если перенести из конструктора(тот же самый метод без void) в отдельный метод не решает проблемы, либо более реальные примеры приводите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:41 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
chabapokКто-то придирается к словам. Вы определенно хотите об этом поговорить. Пятница жа. chabapokУ нас есть ссылка на обьект. Значит он не будет собран. Что именно вам тут неясно? Точность формулировки смущает. Потому что если эту трактовку убрать из конктекста, то она тоже будет неверной. chabapokМы из конструктора опубликовали ссылку на обьект за пределы блока try. Но потом было исключение. Будет ли такой обьект собран? Мы вроде вышли из блока try{}, значит вроде все ок? Но нет. У нас есть опубликованная ссылка на обьект, а значит он не будет собран, значит мы к нему можем обратиться, но он недоконструирован. Вооот. Это оно. chabapokЧто именно вам тут неясно? Что вам не нравится? Если такая формулировка вам не нравится - почему вы не сформулируйте это как считаете нужным? Я знаю - вы можете это сделать. Мне не ясно зачем писать такие громкие заявления chabapokВ часности, публикация this в конструкторе плоха тем, что если после публикации возникнет исключение, то обьект не будет удален сборщиком мусора Без конкретных уточнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 16:47 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
MasterZivНу вот нахрена писать в SafeListener вложенный нестатический класс, если можно сам SafeListener уже унаследовать от EventListener и реализовать там этот void onEvent(Event e) ? Я думаю , мы дойдем и до Вашего вопроса, кстати ответ есть в книге - в Виде Паттерна . Просто Есть много похожих Паттернов - и надо их увидеть , различать и понимать ... для этого тема и была создана ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:19 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
0FD Понял буквально, но все равно обьект будет под управлением сборщика и может быть удален сборщиком. Ясное дело. 0FDТо что я привел показывает, что даже если перенести из конструктора(тот же самый метод без void) в отдельный метод не решает проблемы Как же ж не решает? Не решает для тех, кто рассматривает конструктор как метод. Но конструктор, по задумке - не метод, а конструктор! Есть отличия. Изза сегодняшней придирчивости Blazkowicz я побоюсь в них сильно углубляться. Ненормально использовать методы неполностью сконструированного обьекта. Это опасно тем, что может приводить к трудноуловимым ошибкам, а если такой обьект юзать из другого потока, то это может приводить к ошибкам "состояние гонки". Причем, это касается не только java. 0FDболее реальные примеры приводите. Я не могу вот так сходу придумать более реальный однопоточный пример. Поэтому, более реальные примеры пускай приводит топикстартер, я лишь уточинил его недосказанность. Навскидку чуть более реальный пример, это когда у вас поле не int i, а final OtherObject obj. В конструкторе final-поле, как известно, должно инициализироваться, но из за исключения оно не успевает проинициализироваться. А программист надеется что финал-поле будет именно таким как он указал в конструкторе. Насчет более реального многопоточного примера. Привожу пример: пускай исключений нет, но конструктор публикует this в другой поток. Чем это грозит? Другой поток может вызвать методы обьекта еще до завершения конструктора в текущем потоке. В этом случае непредсказуемо какое значение полей увидит другой поток - уже проинициализированное в конструкторе либо еще нет. надеюсь, понятно описал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:27 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Factory Pattern как его увидеть в коде или когда его можно применить ?! Для себя (как памятка) вывел такое привило (самый простой вариант ) - это Если в голове или коде - встречается что то из списка : cо словом static в сигнатуре или в названии: valueOf , EnumSet , getInstance , getType , newInstance перед нами - Factory Pattern . так же На ряду с конструктором класса для получения экземпляра - так же можно добавить фабричный метод получения экземпляров данного класса ( Если они требуются ) (Это как определить toString() , equals () , hashСode() - > valueOf() джентльменский набор ) Пример : Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 18:35 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Usman, Я эту ссылку видел раз 100 - как она Вам помогла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 20:06 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Usman, Я эту ссылку видел раз 100 - как она Вам помогла?Видел уже в 10 раз больше Вас, и до сих пор продолжает помогать... Действительно очень хороший пост. имхо - ЛикБез по паттернам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2014, 20:17 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Abstract Factory Pattern порождающий шаблон проектирования, позволяющий изменять поведение системы, варьируя создаваемыми объектами, при этом сохраняя интерфейсы. Он позволяет создавать целые группы взаимосвязанных объектов, которые, будучи созданными одной фабрикой, реализуют общее поведение. Шаблон реализуется созданием абстрактного класса Factory, который представляет собой интерфейс для создания компонентов системы (например, для оконного интерфейса он может создавать окна и кнопки). Затем пишутся классы, реализующие этот интерфейс. Код: java 1. 2. 3. 4. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. //Color.java Код: java 1. 2. 3. Red.java Код: java 1. 2. 3. 4. 5. 6. 7. Green.java Код: java 1. 2. 3. 4. 5. 6. 7. AbstractFactory.java Код: java 1. 2. 3. 4. ShapeFactory.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ColorFactory.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. FactoryProducer.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. AbstractFactoryPatternDemo.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. Код: java 1. 2. 3. 4. 5. 6. Фактически мы объединили несколько фабрик в одну для производства экземпляров на все случаи жизни .... в каких местах кода это может быть удобно ? Фибрика фабрик , для каких целей и как ее можно увидеть , понять что она нужна ? вообще такой подход когда у нас в интерфейсе (абстрактном классе ) указаны другие интерфейсы используется повсеместно ...и довольно часто , в огромном количестве решений и паттернов. отсюда вытекает вопрос - нет ли описания, формулы которая пояснит это поведение, кто придумал такой трюк ? итд... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 17:58 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Abstract Factory предоставляет интерфейс для создания семейств связанных или зависимых объектов ,позволяя не указывать их конкретные классы. При таком подходе основная проблема - видна сразу - трудоемкость добавления новых объектов . так же и при удалении ... а вот какие плюсы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 18:06 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
может кто нибудь привести такой же простой пример этого паттерна но используя Reflection ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 18:11 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
нашел более интересный пример использования тут http://www.javenue.info/post/27 Код: java 1. 2. 3. 4. 5. 6. когда из абстрактной фабрики создаем абстрактных персонажей ... т.е. посылая в этот метод нужную нам фабрику мы можем получать нужный нам отряд ... и выполнять над ним общие действия. так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 18:16 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Фибрика фабрик , для каких целей и как ее можно увидеть , понять что она нужна ? http://ru.wikipedia.org/wiki/Инверсия_управления Формулировка: Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракции. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 19:50 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Usman, О! Спасибо! как то не думал, что тут явно присутствует этот паттерн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2014, 21:44 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Singleton Design Pattern порождающий шаблон проектирования, гарантирующий что в однопоточном приложении будет единственный экземпляр класса с глобальной точкой доступа. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 09:23 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Чтобы не забыть , более корректно через Demand Holder Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Основной вопрос по этому паттерну - наверное это его поведение в многопоточной среде . Как, почему,зачем и где его можно встретить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 09:25 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1может кто нибудь привести такой же простой пример этого паттерна но используя Reflection ? MVC, а именно М - модели. Была у меня такая задача, реализация MVC паттерна. В рамках этой задачи была создана фабрика моделей, которая создавала конкретные модели используя Reflection по полному имени класса. Очень упрощённо Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Вместе с тем у такого шаблона есть недостаток - он слабо применим в WEB приложениях, т.к. синглтоны могут дать утечку памяти при UNDEPLOY приложения... А вот в GUI приложении очень даже неплохо себя показывает. IMHO, вместе с тем этот шаблон применим когда у Вас моделей более 20, а до этого числа можно и не использовать фабрику моделей, а создавать их самостоятельно по мере надобности. Кстати, JDBC драйвера загружаются по этому-же принципу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 11:47 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Чтобы не забыть , более корректно через Demand Holder Корректных имплементаций синглтона много. Это и холдер, и final, и DCL, и т.д.. Atum1Основной вопрос по этому паттерну - наверное это его поведение в многопоточной среде.Ответ таков: 1) Его надо корректно опубликовать. 2) Его методы должны быть thread-safe. Atum1Как, почему,зачем и где его можно встретить?Причин на его использование тысяча и одна. Например, классическое enterprise-приложение с anemic моделью, очень часто целиком и полностью состоит из синглтонов (напр., созданных через Spring). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 12:14 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Builder Design Pattern порождающий шаблон проектирования. Отделяет конструирование сложного объекта от его представления, так что в результате одного и того же процесса конструирования могут получаться разные представления. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 14:42 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Prototype Design Pattern порождающий шаблон проектирования, его осбенность в том, что это паттерн создания объекта через клонирование другого объекта вместо создания через конструктор. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Shape : Circle Shape : Square Shape : Rectangle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:04 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
один вопрос когда и как правильно выбирать между abstract factory и Prototype. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 13:05 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Usman, хочется видеть пример из жизни , практический и наглядный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 21:00 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1один вопрос когда и как правильно выбирать между abstract factory и Prototype. Чем Mock отличается от Prototype? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 22:45 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Usman, хочется видеть пример из жизни , практический и наглядный Ну вот например: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2014, 23:39 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Adapter Design Pattern структурный шаблон проектирования, предназначенный для организации использования функций объекта, недоступного для модификации, через специально созданный интерфейс. Система поддерживает требуемые данные и поведение, но имеет неподходящий интерфейс. Адаптер предусматривает создание класса-оболочки с требуемым интерфейсом. Код: java 1. 2. 3. 4. Код: java 1. 2. 3. 4. 5. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 13:23 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Идя для адаптера , в java ?! можем ли мы считать адаптер в первом приближении Миксином(mixin) в java ? со всеми оговорками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 13:24 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Чтобы не забыть , более корректно через Demand Holder Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Основной вопрос по этому паттерну - наверное это его поведение в многопоточной среде . Как, почему,зачем и где его можно встретить? возник такой вот вопрос : а почему бы не делать такую инициализацию и будет ли она потокобезопасной? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. блок static и инициализация в нем instance - дает нам профит?! Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 23:01 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1 , Оба варианта безопасны. Но: 1) В случае Холдера, синглтон будет создан только тогда, когда вы реально к нему обратитесь, так как класс SingletonHolder будет загружен только по факту вызова getInstance(). 2) А во втором случае синглтон будет создан раньше, при загрузке класса Singleton, то есть когда он, возможно, еще не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 00:11 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
DEVcoach Atum1 , Оба варианта безопасны. Но: 1) В случае Холдера, синглтон будет создан только тогда, когда вы реально к нему обратитесь, так как класс SingletonHolder будет загружен только по факту вызова getInstance(). 2) А во втором случае синглтон будет создан раньше, при загрузке класса Singleton, то есть когда он, возможно, еще не нужен. а если без static Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 10:21 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 10:25 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1 , Ну а что означают фигурные скобки в теле класса? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 10:57 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
DEVcoach, ерунда получилась :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 15:59 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Bridge Design Pattern Шаблон мост — структурный шаблон проектирования, используемый в проектировании программного обеспечения чтобы «разделять абстракцию и реализацию так, чтобы они могли изменяться независимо». Шаблон bridge использует инкапсуляцию, агрегирование и может использовать наследование для того, чтобы разделить ответственность между классами. Когда абстракция и реализация разделены, они могут изменяться независимо. Другими словами, при реализации через паттерн мост, изменение структуры интерфейса не мешает изменению структуры реализации. //Create bridge implementer interface. //DrawAPI.java Код: java 1. 2. 3. //Create concrete bridge implementer classes implementing the DrawAPI interface. //RedCircle.java Код: java 1. 2. 3. 4. 5. 6. 7. //GreenCircle.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. //Create an abstract class Shape using the DrawAPI interface. //Shape.java Код: java 1. 2. 3. 4. 5. 6. 7. //Circle.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. //BridgePatternDemo.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2014, 16:55 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Filter Design Pattern Паттерн Фильтр - является шаблоном проектирования, что позволяет разработчикам выбирать набор объектов, используя различные критерии через логические операции.сбор нескольких критериев под одну схему. Person.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Criteria.java Код: java 1. 2. 3. 4. 5. CriteriaMale.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. CriteriaFemale.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. AndCriteria.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. OrCriteria.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. CriteriaPatternDemo.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2014, 11:05 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
В java 8 все это будет выглядеть более лаконично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2014, 11:06 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Гониво какое-то. Любой адекватный разработчик знающий алгоритмы делает фильтры без этой схемы так же легко как птица летает и рыба плавает. К чему нужно засорять себе моск этими заумными диаграммами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2014, 11:22 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
maytonГониво какое-то. Любой адекватный разработчик знающий алгоритмы делает фильтры без этой схемы так же легко как птица летает и рыба плавает. К чему нужно засорять себе моск этими заумными диаграммами? Ваш пример . тут идет обсуждение примеров - фактически создание библиотеки классов помощников и общих подходов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2014, 16:42 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1maytonГониво какое-то. Любой адекватный разработчик знающий алгоритмы делает фильтры без этой схемы так же легко как птица летает и рыба плавает. К чему нужно засорять себе моск этими заумными диаграммами? Ваш пример . тут идет обсуждение примеров - фактически создание библиотеки классов помощников и общих подходов. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2014, 22:12 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Еще профит, вместо List использовать Set. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2014, 22:38 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
no56892Еще профит, вместо List использовать Set. в реализации set = есть внутренняя проверка по ключу - это лишнее время . Профит это или нет - нужно еще понять . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2014, 13:17 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1no56892Еще профит, вместо List использовать Set. в реализации set = есть внутренняя проверка по ключу - это лишнее время . Профит это или нет - нужно еще понять . Ну это да, но в тоже время при использовании фильтров Вы повторно отбираете значения, но уже в самом фильтре. И если учесть, что количество операций добавления заменто меньше чем получения через фильтр, то все-таки профит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2014, 17:23 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Добрый день какой паттерн тут нужно применить ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2017, 14:34 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1какой паттерн тут нужно применить ? Патерн "пустышка"? Зачем? Чем отличается Response и MethodResult? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2017, 15:47 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Alexey TominПатерн "пустышка"? Зачем? Чем отличается Response и MethodResult? Очевидно что это DTO, но, в целом, реализация так себе. Где гарантии что success синхронизирован с состоянием result/error? Зачем вообще условие, почему бы просто не присвоить оба? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2017, 15:58 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
MethodResult привожу Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2017, 16:04 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Любовь к if - else ? как то лечится ? нужно дать рекомендации по рефакторингу ... - как есть ,и как нужно ... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. прошу от троллинга воздержаться спасибо . такой код тестами не покрыт , да и как ? другое дело начать писать код через TDD - тогда в принципе такой стиль был бы не возможен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2017, 16:09 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAlexey TominПатерн "пустышка"? Зачем? Чем отличается Response и MethodResult? Очевидно что это DTO, но, в целом, реализация так себе. Где гарантии что success синхронизирован с состоянием result/error? Зачем вообще условие, почему бы просто не присвоить оба? Присвоить оба - это видимо была идея - шаблона RESULT<T> Книжная реализация : The Result Data Transfer Object The service layer will communicate with the request handling tier through interfaces that return Result Data Transfer Objects (DTO). The DTO design pattern is commonly used in enterprise application programming to transfer data between different layers or subsystems. Our Result DTO will have the following three properties: • boolean success : This property is used if the action was successful and an appropriate data payload is available • String msg : This is a message that may be used by the client for logging or informational purposes • <T> data : This is a generically typed data payload that will be consumed by the request handling layer The Result class is also a Value Object (VO), an immutable object whose state cannot be changed after creation. Each instance variable is marked final and we will use an appropriate ResultFactory method to create the value object instance. Value objects are a concept used in Domain-Driven Design to represent data without any conceptual identity. You can find out more about Domain-Driven Design at http://en.wikipedia.org/wiki/Domain-driven_design . The definition of the Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2017, 16:19 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Любовь к if - else ? как то лечится ?Можно полиморфизмом или switch/case. Atum1нужно дать рекомендации по рефакторингу ... - как есть ,и как нужно ...Что-во-что преобразуется? Можно посмотреть на исходные данные?Atum1прошу от троллинга воздержаться спасибоStream-ный код (: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 09:25 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
Atum1Начну Сам : Антипаттерн – публикация this в конструкторе Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. решение - использовать фабричный метод : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Что-то я не догоняю, где здесь публикация this? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 10:09 |
|
||
|
Friday pattern
|
|||
|---|---|---|---|
|
#18+
HettAtum1Антипаттерн – публикация this в конструкторе Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Что-то я не догоняю, где здесь публикация this? Реализация EventListener не статическая, значит содержит неявную ссылку на "оборачивающий" объект. Т.е. на this. Т.е. в source передан объект со ссылкой на this. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 10:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2122558]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
4ms |
get page messages: |
109ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 395ms |

| 0 / 0 |
