Отражение перепроектирует?

Я разобрался с решением. Я думаю, что попытка ограничить высоту каждого TableRow с помощью layout_weight - это неправильный способ мышления. Согласно документации (выделение моя):

Дочерние объекты TableLayout не могут указывать атрибут layout_width. Ширина всегда MATCH_PARENT. Однако атрибут layout_height может быть определен дочерним элементом; Значением по умолчанию является ViewGroup.LayoutParams.WRAP_CONTENT. Если дочерний элемент является TableRow, то высота всегда равна ViewGroup.LayoutParams.WRAP_CONTENT.

blockquote>

Поскольку высота не может быть ограничена, изображения могут занимать столько места, сколько они хотят, в зависимости от их размеров.

Мы можем реально ограничить высоту, используя LinearLayout . Используя вертикальный LinearLayout с тремя горизонтальными LinearLayout внутри, мы можем дать одинаковое пространство каждому изображению. Каждый горизонтальный LinearLayout получает 1/3 высоты, а каждое изображение внутри горизонтального LinearLayout получает 1/2 ширины.




    

        

            

            
        

        

            

            

        

        

            

            

        
    


enter image description here

8
задан John Leidegren 11 March 2009 в 13:44
поделиться

12 ответов

Граница между этими двумя действительно кажется размытой. Этически я разграничил бы в мотивации программиста.

Если он использует отражение для создания библиотеки, инструмента или подобного программного обеспечения, которое, как предполагается, взаимодействует с любым сторонним кодом, который удовлетворяет определенные критерии, я не рассматривал бы его как инженерный анализ.

Например, я недавно писал универсальный базовый класс для слоев данных Linq2SQL. Базовый класс использует отражение, чтобы получить сведения о расположении базы данных и правильно обработать обновления вложенных предприятий. Если бы кто-то еще использует мой класс оснований для его веб-приложения, я не получил бы знания о его исходном коде. Это использование отражения не является, конечно, никаким инженерным анализом.

Если с другой стороны, программист пытается понять внутренние работы под программным обеспечением конкурента с помощью отражения, он перепроектирует его.

8
ответ дан 5 December 2019 в 06:39
поделиться

Нужно подвергнуть сомнению определение Инженерного анализа, когда способность легко декомпилировать язык является частью Отражения крыла языка.

С инструментом как Отражатель.NET я чувствую, что строки действительно начинают размываться!

Используя пример от ТАК себя, они недавно de-obfuscated исходный код для их Редактора WMD. Я утверждал бы, что это определяет Инженерный анализ больше, чем Отражение.

6
ответ дан 5 December 2019 в 06:39
поделиться

Отражение является просто инструментом для чтения информации из блока, так, чтобы отдельно не перепроектировал.

Если Вы затем используете эту информацию, чтобы узнать, как блок был создан, например, с помощью отражателя.NET для создания читаемого исходного кода, который мог сгенерировать тот же код IL, который перепроектирует.

4
ответ дан 5 December 2019 в 06:39
поделиться

Я сказал бы, что Отражение является просто инструментом. Использование отражения не обязательно означает перепроектировать.

Например, если бы Вы используете отражение для обнаружения подписей всех открытых и защищенных методов в блоке, который не означал бы перепроектировать.

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

3
ответ дан 5 December 2019 в 06:39
поделиться

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

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

2
ответ дан 5 December 2019 в 06:39
поделиться

На самом деле это - полная противоположность инженерного анализа.

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

Несмотря на страшные угрозы владельцами авторских прав, это совершенно законно.

"Дизассемблирование" (иначе "Отражение") является просто действием чтения байтов на Вашем жестком диске и присвоения значения им. Это точно, что делает ЦП, когда он выполняет код. Здесь, мы просто делаем это человекочитаемым. Снова, несмотря на страшные угрозы владельцами авторских прав, это совершенно законно.

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

2
ответ дан 5 December 2019 в 06:39
поделиться

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

Лучший выбор: не должны спрашивать. Microsoft уже выпустила источник для большого количества.NET. См. http://www.microsoft.com/resources/sharedsource/default.mspx.

0
ответ дан 5 December 2019 в 06:39
поделиться

Я думаю, что Вы говорите приблизительно две разных вещи здесь:

  • Отражение является техникой, которая может использоваться для инженерного анализа (среди прочего).
  • Инженерный анализ является действием, которое, но не обязательно должен, может использовать отражение для достижения его целей.

С юридической точки зрения это зависит от Вашей цели при использовании отражения в целях инженерного анализа.

Конечно, IANAL, но я полагаю, что инженерный анализ не недопустим отдельно. Это может стать незаконной деятельностью по доверенности, т.е. посредством нарушения авторских прав и т.д.

2
ответ дан 5 December 2019 в 06:39
поделиться

Нет. С отражением Вы обычно просто говорите о другом способе вызвать методы или возможно посмотреть на атрибуты метода.

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

0
ответ дан 5 December 2019 в 06:39
поделиться

Отражение на многих языках как.NET и Java является патчами для плохих синтаксисов, который не позволяет Вам взаимодействовать свободно с Объектами.

На действительно Объектно-ориентированных языках как Smalltak или Сам, Вам почти никогда не нужно отражение и, в случае необходимости, это намного более мощно, чем предлагаемые.NET и Java.

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

Я в настоящее время работаю много с (основанным на PHP) Drupal, который использует ужасные вещи как конкатенация имен модуля к предопределенным названиям рычага, чтобы найти, существует ли та функция, таким образом, это можно назвать позже (например, module_hook_name).

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

Отражение не должно использоваться за исключением экстремальных обстоятельств, который является, где Вы видите дефекты языков программирования.

-2
ответ дан 5 December 2019 в 06:39
поделиться

Все это зависит от степени, Вы берете отражение. Если бы Вы используете инструмент как Отражатель или кодируете что-то как этот сами, то это перепроектировало бы, поскольку Вы на самом деле добираетесь до исходного кода.

Отражение может использоваться для вызова методов или взгляда на атрибуты, как Don сказал, но это может также использоваться, чтобы проанализировать структуру блока и даже посмотреть внутри к базовому коду MSIL. Таким образом, одно использование отражения могло бы быть невинным, и можно было бы перепроектировать.

0
ответ дан 5 December 2019 в 06:39
поделиться

Отражение - это общий термин в области информатики, который использовался за десятилетия до появления Microsoft .Net framework (чем SUN JVM). Идея была не направлена ​​на обратный инжиниринг приложения. То, что в определенных контекстах его можно использовать для этой цели, просто случайно. Как писали другие, отражение - это «инструмент».

0
ответ дан 5 December 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: