|
|
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Petro123booby, попытка посчитать "профит" от выбора интерфейс\абстрактный класс\наследование\композиция никак не получится. Особенно в литературном стиле. Хотя занимательно, на первые 5 минут. Интерфейс работает на несколько тактов медленнее. Абстрактный класс - это класс. Интерфейс - это контракт (св-во объекта). за подробностями 5 доке https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.invokevirtual https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.invokeinterface итд :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 09:42 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Atum1Интерфейс работает на несколько тактов медленнее. Абстрактный класс - это класс. Интерфейс - это контракт (св-во объекта). Ну вот, уже лучше). - медленность, это последний критерий для рассмотрения. Первый критерий - стройная модель. Т.е. строя взаимосвязи класса вы должна вначале пробовать наследование и композицию, и только потом интерфейсы. Т.е. в примере выше (на каждом собеседовании) сначала делают абстрактный класс Фигура. А потом на нём наследников Квадрат, Звезда и т.д. Первый класс, вторая четверть ООП. Тема - зачем нужны интерфейсы? - Нужны, но в последнюю очередь)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 09:49 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Atum1, Аффтар свой пример про звёзды сделал на интерфейсах. Я этот код пока не видел. По постановке задачи, они там не нужны. Либо он что-то умолчал. Удачи аффтару! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 09:52 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Petro123, авторпопытка посчитать "профит" от выбора интерфейс\абстрактный класс\наследование\композиция никак не получится. Не могу удержаться от совета: Вы все-таки давайте себе передышку - не все слова говорите, которые слышали, а пробуйте выбирать подходящие по месту. интерфейс\абстрактный класс\наследование\композиция композиция может рассматриваться как способ реализации наследования, при этом в среднем наиболее дорогой по сравнению наследованием интерфейсов или синтаксическим exteds - вычеркиваем как лишнее слово, не несущее дополнительной информации по отношению к наследованию и лишь в исключительных случаях полезное, там где вообще речь может зайти об идее реализации фиксирующего поведение интерфейса, при качественно лежащее в той же корзине, что и абстрактный класс. интерфейс\абстрактный класс\наследование из этих трех надо выбросить либо наследование либо оба разом интерфейс/абстрактный класс, т.к. технически в java оба они представляют разные виды наследования - одно наследования поведения, другое - наследование реализации. Вычеркиваем наследование как слишком общее. остается интерфейс\абстрактный класс Заход с интерфейсами не требует единственности дерева наследования - профит в гибкости реализации и внесения изменений на длинной дистанции развития системы, которая с самого начала представляется как набор подсистем, от которых не требуется жесткой единственной деревянной связности. Заход с абстрактными классами в java скорее всего будет работать чуть быстрее - профит в критических по производительности случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 12:28 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Petro123, авторТ.е. строя взаимосвязи класса вы должна вначале пробовать наследование и композицию, и только потом интерфейсы. Вот недаром есть мнение, что если вхождение в программирование началось с изучения ООП, то это неисправимая родовая травма навечно. Программы пишут не для того, чтобы в них были звезды, круги и квадраты, а для того, чтобы с этими кругами и квадратами что-то происходило. Заход, который начался со звезд - это вообще не про программирование. Т.е. строя взаимосвязи класса ... - Т.е., планируя алгоритм работы программы вы должна вначале пробовать наследование и композицию - вы должны понять, объекты с каким поведением вам потребуются, и, как Адам давал имена животным и птицам, дать имена найденным вами объектам с необходимым поведением. Эти имена будут именами необходимых вам логических интерфейсов. Получив набор этих имен, далее вы решаете техническую, синтаксическую задачу выбора способа реализации найденных интерфейсов - с помощью interface или с помощью extends. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 12:40 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
booby, Нда....) Ты ты упорно пытаешься подвести базу под своё незнание или нелюбовь ООП. Это было видно в первой фразе Сергею Арсеньеву про то что Интерфейсу плевать на ООП и то что Оно об нём думает. - ты пытаешься бороться с ветряными мельницами вычеркивая слова из Вики)) ... Диаграмма классов https://ru.wikipedia.org/wiki/Диаграмма_классов Уж не заню по какой методологии вы разрабатывате ИС, но диаграмма классов строится безотносительно ЯП. И даже возможно не вами и не вами. Поэтому именно с \абстрактный класс\наследование\композиция мы и начнём стоить. Никак не с _вторичной_ семантической конструкции в ЯП - Interface авторот которых не требуется жесткой единственной деревянной связности. ==== конечно! Никто не требует ВСЮ модель делать на вертикали наследования. Даже в БД есть денормализация против таких фанатиков с идеей "интерфейсы-наше всё!" Или 3-я степень норм-ии наше всё! Фанатики, что с них взять)). авторВот недаром есть мнение, что если вхождение в программирование началось с изучения ООП, то это неисправимая родовая травма навечно. == в первой половине треда я вас и интерфейсы поддерживал. Пока не понял, что вы фанатик ОДНОГО решения. Я лично люблю оба). Только проектирую классы не с Interface. См. тред выше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:21 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
boobyПрограммы пишут не для того, чтобы в них были звезды, круги и квадраты, а для того, чтобы с этими кругами и квадратами что-то происходило. однобоко и узко. Открой деление на слои - Модель\Сервисный слой или иди в функциональное программирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:23 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
boobyТ.е. строя взаимосвязи класса ... - Т.е., планируя алгоритм работы программы вы должна вначале пробовать наследование и композицию - вы должны понять, объекты с каким поведением вам потребуются, смешалось всё, функциональные требовани, ТЗ, .... Огорчу - всё уже разложено по полочкам и определено: Когда этап поведения, когда диаграмма классов и когда всё остальное. Правда не знаю как вы там живёте, по RUP\водопаду или экстиму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:26 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
boobyи, как Адам давал имена животным и птицам, дать имена найденным вами объектам с необходимым поведением. Эти имена будут именами необходимых вам логических интерфейсов. Получив набор этих имен, далее вы решаете техническую, синтаксическую задачу выбора способа реализации найденных интерфейсов - с помощью interface или с помощью extends. это 5 ))))) Запишу в новую методологию проектирования ИС. Красиво ты пишешь))). Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:30 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
booby- с помощью interface или с помощью extends. хорош теории из Библии программиста, ждём код аффтара. Сегодня пятница! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:33 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Atum1, возвращаю тоже тебе полезную ссылку на Различия в использовании интерфейсов и абстрактных классов http://www.quizful.net/post/razlichie_v_primenenii_interfeysov_i_abstraktnih_klassov ты можешь сказать, что ты в курсе. Ну тогда мы оба с тобой в курсе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:43 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Petro123, авторДаже в БД есть денормализация против таких фанатиков с идеей "интерфейсы-наше всё!" Или 3-я степень норм-ии наше всё! Ты все-таки продолжаешь произносить все слова, которые слышал. Это смело, надо признать. В качестве профессионального приема это используется клоунами при составлении реприз, специально для того, чтобы слова вырванные из своего обычного контекста слова стали звучать смешно. Petro123boobyи, как Адам давал имена животным и птицам, дать имена найденным вами объектам с необходимым поведением. ... это 5 ))))) Запишу в новую методологию проектирования ИС. Красиво ты пишешь))). Удачи! Это не я придумал, это у программистов в библии так написано. автор... Ну тогда мы оба с тобой в курсе Прошу прощения, есть подозрение, что ты ошибаешься. Больше похоже на то, что один из нас не в курсе , т.к. заявляется поклонником всех подходов разом, не умея выбрать из слышанных слов подходящее по месту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:52 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
boobyПрошу прощения, есть подозрение, что ты ошибаешься. Больше похоже на то, что один из нас не в курсе , т.к. заявляется поклонником всех подходов разом, не умея выбрать из слышанных слов подходящее по месту. я же тебе говорю. У тебя мания преследования). После твоих 2-х литературных спитчей о славных интерфейсах, я тебя спросил: Фанат? Или в курсе про недостатки? Тут тебя понесло. Отсюда диагноз. Тут люди, "опера, котоые на земле работают") так много как ты не пишут. И про ООП не плюются . Ты ещё не знаешь, что MS сказало про свои (твои) интерфейсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 14:07 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Коллеги, не нужно ссориться! :) Своё понимание интерфейсов я для себя "выработал". Верное оно или нет - покажет практика. "Звёзды", наверное, и правда не очень удачный пример, но я "у подножья горы" Так что уж простите мне некоторые "казусы". :) Я здесь время от времени буду появляться (если никто не против). Опыт и советы знающих людей - для меня очень ценны! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 05:48 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
MAULER, Такой пример, на мой взгляд, лучше объясняет суть интерфейсов, нежели пример с геометрическими фигурами: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Допустим, в каком-то классе, в каком-то из методов (в данном случае класс Utilizator а метод toBeUtilized) требуется утилизировать объект. Что из себя этот объект представляет мы не знаем, потому вводим специальный интерфейс Utilizable. Теперь мы можем пользоваться ссылкой на объекты, реализующие этот интерфейс, зная наверняка, что любой такой объект может быть утилизирован с помощью метода utilize. А что представляет собой этот самый класс нам уже и не важно, как бы. Теперь мы можем утилизировать и треугольники, и звёздочки, и холодильники какие-нибудь, лишь бы они имплементировали наш интерфейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 21:53 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
DoSOfRedRiver, ты так это описал смачно: .... в каком то классе...в каком то методе.... никто ничего не знает. Кроме того что нужно утилизовать холодильники, прицепы и звёзды (TObject.Free). Что представляют из себя классы и модель - нам не важно. Мы цепляем на всё подряд интерфейсы (утилизатор, сохранятор, плоттер и модификатор). Поперчим интерфейсами Кликатель и Толкатель и вот чудо. ИС готова. Абстрактный Interface в абстрактной задаче - это сила. авторТеперь мы можем утилизировать и треугольники, и звёздочки, и холодильники какие-нибудь, лишь бы они имплементировали наш интерфейс. а имплементацию Пушкин будет писать? Т.е. тебе лишь бы навешать маркеров и вызвать ЛЮБОЙ объект. В _некоторых случаях_ )) это замечательно, но мало. Т.е. есть плюсы и минусы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:14 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
DoSOfRedRiverТакой пример, на мой взгляд, лучше объясняет суть интерфейсов, нежели пример с геометрическими А ещё лучше, кстати, java.lang.AutoCloseable Добавляем в любой свой класс реализацию этого интерфейса Код: sql 1. И далее пишем Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:02 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Alexey TominА ещё лучше, кстати, java.lang.AutoCloseable к задачке автора косвенно. openedDoor "освободится") на скобке } конца блока. А у аффтара пример жизненнее. Время жизни до 8 часов рабочего дня по КЗОТ. (объекты у Слоя, Слои у Документа, Документы у Application) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 10:55 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Petro123Atum1, возвращаю тоже тебе полезную ссылку на Различия в использовании интерфейсов и абстрактных классов http://www.quizful.net/post/razlichie_v_primenenii_interfeysov_i_abstraktnih_klassov ты можешь сказать, что ты в курсе. Ну тогда мы оба с тобой в курсе). спасибо :) А для автора могу такой пример привести , жизненный : spring data подробно расписывать не буду и так все понятно ... к примеру у вас есть объектная модель : User *-* Role (@Entity) как мы ведем проектирование : 1) создаем репозитории - это чистые интерфейсы ;) UserRepository RoleRepository 2) понимаем что у них CRUD - очерь похож ...и если у нас в модели классов будет 100500 писать одно и тоже утомительно . делаем AbstractRepository Код: java 1. 2. 3. и Код: java 1. 2. Далее у нас отличная система на interface RoleRepository которые мы внедряем везде ... но тут понимаем что нужно обеспечить например безопасность вызовов - ограничить по ролям итд ... ок 3) на сцену выходит interface UserService RoleService и как следствие AbstractService Код: 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. Код: 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. свои уникальные вызовы ... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ну и конечно имплементация : с учетом ролей @RolesAllowed({"ROLE_ADMIN"}) Код: 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. итд ... далее можно стоить еще и еще слои сервисов - Facade - абстракции для отдачи пользователю json xml итд Таким образом - interface и abstract очень и очень тесно связаны !!! очень наглядно и очень удобно ! Пример номер два для abstract классический ! в класс abstract AbstractServiceImpl - вы добавили метод public abstract boolean isValid(String str); и его вызов будет в каждом из методов вашего абстрактного класса ... @Override public Page<T> findAll(Pageable pgbl) { boolean bool = isValid(String str); return repository.findAll(pgbl ,bool ); } но реализация конкретная будет только в UserServiceImpl @Override public String isValid(String str) { return true; } Таким образом - вы задаете поведение ,но не реализацию ... которая будет разной у всех наследников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 11:37 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Atum1, 1. Давай без спринга. Автор не о нём и его не знает (предположим). 2. Это пример ущербности Java. - модель из 2-х сущностей Пользователь - Роль, а ты написал РУКАМИ 175 строк кода. - лучше напиши спринг2, или Хибер3 без этой простыни: public interface AbstractService<T, ID> { public long count(); public long count(Specification<T> s); public void delete(T t); public void deleteInBatch(Iterable<T> itrbl); public T findOne(ID id); public Page<T> findAll(Specification<T> s, Pageable pgbl); public List<T> findAll(Specification<T> s, Sort sort); public Page<T> findAll(Pageable pgbl); public List<T> findAll(); public void flush(); public <S extends T> S save (S s); public <S extends T> List<S> save(Iterable<S> itrbl); } public abstract class AbstractServiceImpl<T, ID extends Serializable> implements AbstractService<T, ID>{ private final AbstractRepository<T , ID > repository; protected AbstractServiceImpl(AbstractRepository<T , ID > repository){ this.repository = repository; } @Override public long count() { return repository.count(); } @Override public long count(Specification<T> s) { return repository.count(s); } @Override public void delete(T t) { repository.delete(t); } @Override public void deleteInBatch(Iterable<T> itrbl) { repository.deleteInBatch(itrbl); } @Override public T findOne(ID id) { return repository.findOne(id); } @Override public Page<T> findAll(Specification<T> s, Pageable pgbl) { return repository.findAll(s, pgbl); } @Override public List<T> findAll(Specification<T> s, Sort sort) { return repository.findAll(s, sort); } @Override public List<T> findAll() { return repository.findAll(); } @Override public void flush() { repository.flush(); } @Override public <S extends T> S save(S s) { return repository.saveAndFlush(s); } @Override public <S extends T> List<S> save(Iterable<S> itrbl) { return repository.save(itrbl); } @Override public Page<T> findAll(Pageable pgbl) { return repository.findAll(pgbl); } } почему многим так не нравится задача автора и все придумывают СВОЮ задачу для ПРОГРАММИСТА себя любимого? )) шутка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:31 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Atum1, вот тебе без спринга, тоже 200 строк на маппинг ерунды. http://www.sql.ru/forum/925025/ddd-vs-four-tier-layered-architecture?mid=12223783#12223783 Вот если бы как Tomin выше уменьшил бы код интерфейсами до 10 - 20 строк, тогда да)). ______________________________________________ "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:43 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Petro123Atum1, 1. Давай без спринга. Автор не о нём и его не знает (предположим). 2. Это пример ущербности Java. - модель из 2-х сущностей Пользователь - Роль, а ты написал РУКАМИ 175 строк кода. - лучше напиши спринг2, или Хибер3 без этой простыни: я же сразу показал путь для эволюции... :) (да и писал то я меньше половины - остальное автогенерация ) а так да , достаточно 2х интерфейсов ( пусть кто нибудь попробует написать два абстрактных класса так же в одну строку с тем же функционалом :)? Код: java 1. 2. и для User аналогично ... и для 90% сайтов этого хватит ... до конца жизни ... одна строка - один интерфейс ! сможете создать CRUD - более кратким ?! :) http://docs.spring.io/spring-data/jpa/docs/1.5.x/reference/html/repositories.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 13:46 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Atum1, OFF тут шаблон DAO + генерики + интерфейс. А не чисто сабж). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 14:05 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
Atum1.. и для 90% сайтов этого хватит ... до конца жизни ... не зарекайся))) - андроид Код: 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. - Java ResultSet\RowSet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 15:27 |
|
||
|
Изучаю Java. Объясните пожалуйста просто и доходчиво про интерфейсы.
|
|||
|---|---|---|---|
|
#18+
А вообще, хороший пример есть на сайте оракла, по-моему: https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html For example, imagine a futuristic society where computer-controlled robotic cars transport passengers through city streets without a human operator. Automobile manufacturers write software (Java, of course) that operates the automobile—stop, start, accelerate, turn left, and so forth. Another industrial group, electronic guidance instrument manufacturers, make computer systems that receive GPS (Global Positioning System) position data and wireless transmission of traffic conditions and use that information to drive the car. The auto manufacturers must publish an industry-standard interface that spells out in detail what methods can be invoked to make the car move (any car, from any manufacturer). The guidance manufacturers can then write software that invokes the methods described in the interface to command the car. Neither industrial group needs to know how the other group's software is implemented. In fact, each group considers its software highly proprietary and reserves the right to modify it at any time, as long as it continues to adhere to the published interface. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2015, 17:35 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39029379&tid=2125025]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
210ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 536ms |

| 0 / 0 |
