Что такое «соотношение мощности к весу» API?

В презентации Блоха он сказал, что проектировщик должен искать хорошее соотношение мощности к весу для API. Более того, он также подчеркнул, что « Концептуальный вес более важен, чем масса ». Я предполагаю, что вес для « Концептуальный вес », bulk предназначен для количества методов класса.

Но я не мог понять, что такое « Концептуальный вес », что такое « отношение мощности к весу ». Добро пожаловать в любое объяснение!

Блох привел пример: List.subList () имеет хорошее «соотношение мощности к весу». Если клиент хочет узнать индекс подсписка, ему не нужно вызывать метод с низким коэффициентом p2w indexOfSubList (a, b, e) , вместо этого он может вызвать List .subList (a, b) .indexOf (e) . Блох считал, что это «соотношение мощности к весу».

Источник:

API должен быть как можно меньше, но не меньше

  • API должен удовлетворять его требованиям
  • Если есть сомнения, оставьте его удельная мощность ». Если клиент хочет узнать индекс подсписка, ему не нужно вызывать метод с низким коэффициентом p2w indexOfSubList (a, b, e) , вместо этого он может вызвать List .subList (a, b) .indexOf (e) . Блох считал, что это «соотношение мощности к весу».

    Источник:

    API должен быть как можно меньше, но не меньше

    • API должен удовлетворять его требованиям
    • Если есть сомнения, оставьте его удельная мощность ». Если клиент хочет узнать индекс подсписка, ему не нужно вызывать метод с низким коэффициентом p2w indexOfSubList (a, b, e) , вместо этого он может вызвать List .subList (a, b) .indexOf (e) . Блох считал, что это «соотношение мощности к весу».

      Источник:

      API должен быть как можно меньше, но не меньше

      • API должен удовлетворять его требованиям
      • Если есть сомнения, оставьте его
        • Функциональность, классы, методы, параметры и т. Д.
        • Вы всегда можете добавить, но никогда не сможете удалить
      • Концептуальный вес важнее, чем объемный
      • Ищите хорошее соотношение мощности к весу
9
задан 卢声远 Shengyuan Lu 30 April 2012 в 09:33
поделиться

4 ответа

Я бы интерпретировал «концептуальный вес» как количество абстрактных понятий, которые необходимо изучить и понять, чтобы использовать API. Концепты обычно сопоставляются с общедоступными классами, в то время как классы, которые не являются общедоступными, увеличивают объем, но не концептуальный вес.

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

«хорошее отношение мощности к весу» означает, что API должен использовать как можно меньше общедоступных классов, чтобы предлагать как можно больше функциональных возможностей. Это означает, что API должен:

  • Не добавлять собственные концепции или абстракции, которых нет в домене
  • Для сложных доменов предлагать ярлыки для наиболее часто используемых функций, которые позволяют обычному пользователю обходить более сложные части. домена
5
ответ дан 4 December 2019 в 19:32
поделиться

Я бы сказал, что

  • мощность = количество функций, предоставляемых API
  • вес = усилия, необходимые для изучения API
5
ответ дан 4 December 2019 в 19:32
поделиться

Я думаю, что API с хорошим соотношением мощности к весу — это API, который предлагает много функций (мощность), но требует небольших усилий для правильной работы (вес).

Это можно сделать, например, с помощью "Конвенции о конфигурации". (Обратите внимание, что это всего лишь пример, и вы можете добиться этого разными способами.)

Было бы полезно дать ссылку на презентацию Блоха, возможно, он имеет в виду что-то другое :-)

1
ответ дан 4 December 2019 в 19:32
поделиться

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

1
ответ дан 4 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

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