Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение
Не просто вода, а вредные советы, как у Хармса.
Кстати про C# — в статье упоминалось это habrahabr.ru/post/130318/ первоисточник по ссылкам искать лень.
Тип перестановки Перестановка разрешена
Загрузка-загрузка Да
Загрузка-запись Да
Запись-загрузка Да
Запись-запись Нет

То есть проблема перестановки, указанная в этой статье, в С# не имеет места.
Операции записи в поля класса конструктором не могут поменяться местами с записью в ссылочное поле instance.
1) Не объекты, а объект. Один билдер на один конструируемый immutable объект.
2) Я всего лишь сказал «напомнило». Тем, что конструкции цепочкой выстраиваются.

string append = (new StringBuilder(«a»))
.Append(«pp»)
.Append(«en»)
.Append(«d»)
.ToString();
А что будет в случае интерлоков? Предполагая, что конструкторы везде одинаковы и различие лишь в синглтоновом методе Instance — обвалятся точно так же. Только параллельно в разных тредах, а не последовательно в случае лока.
Даже я бы сказал — будет ровно наоборот, если речь идет об открытии файла на запись, например, то в случае лока все пройдет нормально, а в случае интерлока получим одно нормальное выполнение и (n-1) исключений в других потоках, сигнализирующих о невозможности открыть файл. И эти ситуации еще нужно обработать как то, чтобы эти потоки получили нормальный instance, а не null.
Преимущество, как уже сказал автор, в читаемости кода. Каскадирование заменяется последовательной цепочкой.
В частности, ради примера нечитаемости, меня в свое время помнится разбесили тернарные операции. При втором уровне вложения на строке были три знака вопроса и три же двоеточия. Пока не раскидал выражение на if-else не понял как оно работатет. Количество строк кода увеличилось раз в 10, но читаемость улучшилась.

Над именами можно конечно поработать, например вместо ReturnSuccess я бы поставил более говорящее за себя IsNotNull.
Кстати, интересно, как лучше модифицировать эту проверку для работы со строками, чтобы проверять не только на null, но и на string.empty.
Очень понравился паттерн. Сразу захотелось попробовать на практике, спасибо за видео. Напомнило паттерн «билдер», похожее каскадирование инструкций и такой же восторг от полезности паттерна.
Жду других паттернов.
И вообще — имхо, «экономия» на операциии, которая происходит один раз есть овчинка не стоящая выделки.
На последний вариант — все же если несколько потоков запросят Instance — создадутся несколько копий синглтона. В ссылку instance запишется только одна из них конечно, и все потоки получат только одну, но тем не менее. Если это например, логгер, который сразу должен открыть файл, или коннект к базе данных, то такой вариант неприемлем. Или если класс «тяжелый», что его создание и ининциализация «дороже», чем lock, то использование интерлока просто невыгодно.

Скажем так — это приемлемо если должен «жить» только один объект, а если же должен быть «создан» только один объект, то нет.
Вариант с lock() как раз таки гарантирует создание только одного объекта, что под синглтон больше подходит и по совместимости/переносимости в частности и по логике вообще.
Хех, если версия Про будет стоить 40, то сколько же будет стоить обычная, без суффикса?

ЗЫ а я уже разводил теорию заговора о том, что восьмая винда радикально подешевеет относительно семерки.
Если кому интересно —
Обратное преобразование нужно, чтоб узнать куда ткнул мышкой(или пальцем) игрок, угадал?
Для 3D такой фокус не пройдет — нужно использовать хит-тест.

В WPF-3D это делается вот так
private void viewport_MouseDown(object sender, MouseButtonEventArgs e)
{
int increment = 0;
RayMeshGeometry3DHitTestResult result = (RayMeshGeometry3DHitTestResult)VisualTreeHelper.HitTest(viewport, e.GetPosition(viewport));
Сell cl = gMap.getCell(result.MeshHit);

тут предполагается, что все поверхности (Mesh) запомнены в словаре, например, и getCell оборачивает к ней доступ.
Считать, что стереотипы это плохо — плохой стереотип.
Тогда уж писали бы «до 100кВт», чего стесняться то…
Я тут задумался, мог ли я 15 лет назад, сидя за 13" монитором, подумать, что сегодня променяю 24" монитор на 42" телевизор? Тоже казалось невероятным иметь метровый экран.

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

ЗЫ «по мне» ключевое словосочетание. С него и надо было начинать.
Можно ссылку на андроид маркет?
Нескромный вопрос, а почему именно 30, а не 24 или 37?
Почему же он неудобен? Кинект в массы выпустят, и телевизор внезапно станет удобнее всех планшетов вместе взятых.
Вопрос такой — что подразумевается под «при включенном GPS»?
С включенным навигатором, отрисовкой карт, просчетом маршрутов, и апдейтом пробок? Мой часа 2-3 вытягивает в этом режиме. Сдается мне, что если брать только трекинг, с выключенным экраном, то 7-9 часов вытянет любой сегодняшний смартфон.

ЗЫ всего лишь имхо — отдельному устройству не видать коммерческого успеха.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность