Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java vs .Net 
:(
    Опции темы
Karadul
Дата 22.2.2012, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



First class object - значит, что его можно сохранить в переменную. В яве это только примитивные типы и обьекты.

Цитата(Экскалупатор @  22.2.2012,  18:27 Найти цитируемый пост)
ля меня интуитивно понятно что передавать название класса что бы потом его по этому названию искать и создавать на основе этого объект - это нелепость

Искать и создавать? Блин, ты упорно не понимаешь или не хочешь понять, что я хочу сделать. Не название класса (строку), а ссылку на класс.

Цитата(Экскалупатор @  22.2.2012,  18:27 Найти цитируемый пост)
то код будет в одном месте собран

А в примере на питоне он не в одном месте?

Цитата(Экскалупатор @  22.2.2012,  18:27 Найти цитируемый пост)
что кратчайший довольно часто не лучший

Если язык это не может - то не лучший. Ну дело не в том. Насколько я понимаю, фабрика сделана для обхода определенных ограничений статических языков, людям, знающим языки, где такое не надо, тяжело понять, что же им делать. До фабрики я дошел своим умом и не сразу. Поправь меня, если это не так. А то ты так активно против, но ни одного нормального аргумента (кроме того, что шарп похоже так не может) я так и не услышал.

И вообще думай шире. Не сярпом (явой итд) единым. Похоже, есть много вещей, о которых ты не догадываешься smile 
Замечал у жавоидов подобное - несмотря на местами архаичные языковые конструкции, стоит заикнуться, например, о том, что хорошо бы в 2012-то году уже замыкания иметь, как им рвет пердак и они, истекая слюнями, начинают доказыать, что я чмо, как будто я их маму задел. Может это синдром единственного языка? С моими не очень богатыми знаниями явы и питона я не бросаюсь на людей, которым в них чего-то не хватает (разве что это из области, в которой я совсем мало понимаю).
PM MAIL   Вверх
Экскалупатор
Дата 22.2.2012, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



я не пытаюсь ничего доказывать, я пытался сказать что нужно просто определиться, любую ситуацию можно разрулить на любом языке, только разными способами, заметь я не разу не сказал что шарп хорош или плох, как и ява как и любой другой язык, статический или нет. повторяя твои слова не питоном(или любым другим языком)... 
то о чем ты можешь или не можешь догадаться определяется только опытом использования. мне к примеру никогда не приходилось решать задачи в которых по какой то причине могла понадобиться ссылка на класс(но не на объект этого класса). к примеру я считаю что подобная функциональность добавила бы мне проблем в проектах, хотя бы в той простой вещи что инициализация объектов будет расползаться по всему проекту. 
Цитата(Karadul @  22.2.2012,  19:20 Найти цитируемый пост)
А в примере на питоне он не в одном месте?

я не писал ничего на питоне, но на сколько я понял то не в одном, ты хочешь передать ссылку на класс и там, куда ты ее передал, проинициализировать объект. соответственно мест становится много. опять же может быть я ошибаюсь, но я понял это так.
Цитата(Karadul @  22.2.2012,  19:20 Найти цитируемый пост)
Похоже, есть много вещей, о которых ты не догадываешься

))) да, я никогда не говорил что знаю все.


по большому счету мне не нравится только одна вещь, это когда люди начинают все сравнивать между собой по принципу: лопата плоская и ей удобно копать, а грабли с зубцами и ими копать неудобно. и сразу же обычно следует вопрос: а как сделать так что бы у граблей все зубцы превратились в плоскость как у лопаты, что бы было удобно копать, потому что раньше я копал лопатой и мне это нравилось, но теперь я хочу копать граблями, но мне неудобно!!!
 пример конечно корявый, но думаю суть ясна.

Это сообщение отредактировал(а) Экскалупатор - 22.2.2012, 23:43
PM MAIL ICQ   Вверх
Karadul
Дата 23.2.2012, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



Цитата(Экскалупатор @  22.2.2012,  23:41 Найти цитируемый пост)
любую ситуацию можно разрулить на любом языке

Можно, но зачем?

user posted image

Мне показалось, что твоя любовь к разрулению исходит от того, что ты другого просто не видел. Где разрулять не приходится. И ОСОБЕННОСТИ ЯЗЫКА страшны не столько сами по себе, сколько заставляют пердолиться в срачло при переходе с похожих вещей. Например, в lua нет ооп, через какие-то танцы оно эмулируется, но когда я увидел это, я решил, что я без него обойдусь - без ооп и вообще без lua.

Цитата(Экскалупатор @  22.2.2012,  23:41 Найти цитируемый пост)
определяется только опытом использования.

Для тебя это может быть и нормально, а мне не хочется придрачиваться к каждому языку, с которым я соприкасаюсь. Есть же общая теория, вроде ООП, которая с небольшими отличиями одинакова.

Цитата(Экскалупатор @  22.2.2012,  23:41 Найти цитируемый пост)
 инициализация объектов будет расползаться по всему проекту. 

Покажи мне в моем примере, где она расползается? И чем это принципиально отличается от фабрики? Там ты тупо пробрасываешь параметры конструктору.

Цитата(Экскалупатор @  22.2.2012,  23:41 Найти цитируемый пост)
пример конечно корявый, но думаю суть ясна.

Это намек на то, что ява/шарп для копания не предназначены, на них можно только наступать? smile 
PM MAIL   Вверх
Экскалупатор
Дата 23.2.2012, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Цитата(Karadul @  22.2.2012,  23:42 Найти цитируемый пост)
И ОСОБЕННОСТИ ЯЗЫКА страшны

))) это печально.
но ты упорно не хочешь понимать про что я тебе пытаюсь объяснить. пойми вещи существуют в этом мире не для того что бы находиться в соответствии с твоими ожиданиями, и языки программирования тут не исключение. я просто пытался сказать что выбор того или иного языка не должен основываться на опыте использования предыдущих языков, в каждом из них всегда можно найти свои плюсы и минусы.

по теме: почитай что такое Generic Class, может быть тебе поможет.
PM MAIL ICQ   Вверх
kulikov
Дата 23.2.2012, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.2.2012

Репутация: нет
Всего: нет



Для разработки по windows лучшего средства чем .net/c# не существует в природе. Однако, не смотря на всю пародию вроде моно, технология это не кросплатформенная. Если хотите разрабатывать не только под окнами, тогда лучшее решение это ява. Да, существует много технологий, но ява самая оптимальная.
Однако, лично меня, попытка преобрести хоть какие скилы на яве ввергает в уныние. Уж очень она устаревшая, сравнительно с c#. Сейчас правда есть разрабатывается проект Котлин. Это будет ЯП, больше похож на c# нежели на яву и он будет компилироваться в байт-код.

PM MAIL   Вверх
Karadul
Дата 23.2.2012, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



Цитата(Экскалупатор @  23.2.2012,  10:22 Найти цитируемый пост)
выбор того или иного языка не должен основываться на опыте использования предыдущих языков

Очень интересно, а на чем же он должен основываться? На удобстве рисования гуя (ну и это тоже, кстати)? smile Ну не опытом единым, но изучение языка требует вложений, и мне было бы интересно знать, чем эти вложения будут окупаться. Или языки надо учить от переизбытка свободного времени и нехватки денег на новый комп?
PM MAIL   Вверх
Karadul
Дата 23.2.2012, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



Видел сервера на сисярпе. Если 2 процента красноглазиков на десктопе меня не интересует, то на серверах их вовсе не 2%, особенно на low end. Отсуда вопрос - при минимальном или отсуствующем гуе можно будет запустить программу на питухоси?
Я вобщем-то не против мультиплатформенности, но не ценой того, что на моей родной платформе от гуя приходится рыдать, а из программ, которые я знаю, с гуем, который можно назвать нормальным, большинство - IDE для явы smile))

Цитата(kulikov @  23.2.2012,  11:55 Найти цитируемый пост)
Уж очень она устаревшая, сравнительно с c#.

Можешь привести примеры, чем шарп лучше?

Как обстоит дело с совместимостью в пределах windows? На 2000 можно поставить максимум Framework 2.0. Остальные ставятся на любую винду? 
PM MAIL   Вверх
kulikov
Дата 23.2.2012, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.2.2012

Репутация: нет
Всего: нет



Цитата(Karadul @  23.2.2012,  12:12 Найти цитируемый пост)
Можешь привести примеры, чем шарп лучше?

Нет. Во многих книгах по c# это и так написано, я уже не говорю об Интернете. Не ленись  smile 
PM MAIL   Вверх
Karadul
Дата 23.2.2012, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



Цитата(kulikov @  23.2.2012,  13:24 Найти цитируемый пост)
Нет. 

Тогда что ты в этом треде делаешь?

Ах да, можно поставить .Net Framework без прав админа и зашивания в ось? Большинство фреймверков работает просто после копирования.

Это сообщение отредактировал(а) Karadul - 23.2.2012, 18:24
PM MAIL   Вверх
kulikov
Дата 23.2.2012, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.2.2012

Репутация: нет
Всего: нет



Цитата(Karadul @  23.2.2012,  18:22 Найти цитируемый пост)
Тогда что ты в этом треде делаешь?

Учу таких как ты, не ленится. А что ты делаешь на этом форуме? В школе на уроках надо сидеть.

Цитата(Karadul @  23.2.2012,  18:22 Найти цитируемый пост)
Ах да, можно поставить .Net Framework без прав админа и зашивания в ось? Большинство фреймверков работает просто после копирования.

И что с того?
PM MAIL   Вверх
Karadul
Дата 23.2.2012, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



Цитата(kulikov @  23.2.2012,  18:38 Найти цитируемый пост)
Учу таких как ты, не ленится.

Детей своих учи.


Цитата(kulikov @  23.2.2012,  18:38 Найти цитируемый пост)
И что с того? 

Так да или нет?
PM MAIL   Вверх
erm0l0v
Дата 5.3.2012, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.1.2011

Репутация: нет
Всего: 1



Есть много способов реализовать фабрику на C# выбор конкретного способа завит от задачи.

Я бы сделал так:

Код

void RegistClass<T>(Type typeClass)
{
  //регистрируем класс
}

object CreateClass<T>()
{
  //создаем класс
}


здесь T это тип базового класса или интерфейс который необходимо создать. В методе RegistClass регистрируем тип а в методе CreateClass создаем объект для этого типа.

Кроме того есть библиотеки (например от Microsoft) которые уже реализуют фабрику с кучей дополнительных возможностей.

Использовать оператор new как у вас в примере насколько я знаю в C# нельзя. Вместо этого вы можете использовать например такую конструкцию:
Код

Activator.CreateInstance(t)


где t это переменная типа Type
PM MAIL   Вверх
Karadul
Дата 14.3.2012, 04:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



erm0l0v, а как передать параметры конструктору?
PM MAIL   Вверх
erm0l0v
Дата 14.3.2012, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.1.2011

Репутация: нет
Всего: 1



Доступно множество перегрузок метода
Код

CreateInstance


Одна из них выглядит так:
Код

public static object CreateInstance(Type type, params object[] args);


Вторым параметром принимается массив объектов: это как раз и будут параметры для передачи в конструктор, а ключевое слово params позволяет использовать функцию более прозрачно:
Код

Activator.CreateInstance(t, 1, "Word")

Вот так например можно передать в конструктор переменную типа int и "Word"
PM MAIL   Вверх
Karadul
Дата 16.3.2012, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: 1
Всего: 1



А что будет при несовпадении типа / количества обьектов? Если исключение при выполнении, то это не нужно.
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0913 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.