Попробуйте это
Если вы хотите открыть изображение из URL браузера, используйте это
http://localhost:4200/assets/images/smile.jpg
Я считаю, существует континуум сложности, поэтому соответствующие организации . Далее следуют примеры, выбирайте в зависимости от сложности вашего проекта и ваших утилит и адаптируйтесь к другим ограничениям:
На каждом уровне группировки (упаковка, класс):
Для проектов я обычно повторяю общее значение в названии суперпакета. Хотя это не мой предпочтительный выбор в теории, я не вижу в своей IDE (Eclipse), из какого проекта импортируется класс, поэтому мне нужно, чтобы информация была повторена. Проект фактически используется только как:
Обратите внимание, что все вышеперечисленное относится к динамическому методы, а не только статические. Это на самом деле наша хорошая практика для всего нашего кода.
Теперь, когда я попытался ответить на ваш вопрос (хотя и в широком смысле), позвольте мне добавить еще одну мысль
(я знаю, что вы не просили об этом) .
Статические методы (кроме тех, которые используют статические члены класса) работают без контекста, все данные должны передаваться как параметры. Все мы знаем, что в ОО-коде это не является предпочтительным способом. Теоретически, мы должны найти объект, наиболее соответствующий методу, и переместить этот метод на этот объект. Помните, что совместное использование кода не должно быть статическим , оно должно быть только публичным (или видимым иным образом).
Примеры того, куда перемещать статический метод:
Ограничения: некоторые классы не могут быть расширены, обычно потому, что они вышли из-под контроля (JDK, библиотеки ...). Я считаю, что это реальное вспомогательное оправдание, когда вам нужно поместить метод в класс, который вы не можете изменить .
Наша хорошая практика заключается в том, чтобы называть помощника именем расширяемого класса с суффиксом помощника. (StringHelper, DateHelper). Такое тесное соответствие между классом, в котором мы хотели бы видеть код, и помощником помогает нам найти этот метод за несколько секунд, даже без знания, написал ли кто-то еще в нашем проекте этот метод или нет.
Суффикс Helper
является хорошим соглашением , поскольку он используется в других языках (по крайней мере, в Java, рельсы IIRC используют его).
Намерение вашего помощника должно быть передано именем метода и использовать класс только как заполнитель. Например, ParseCommaSeparatedIntegersFromString
- плохое имя по двум причинам:
FromString
, поскольку он выводится из сигнатуры Что вы думаете о:
CSVHelper.parse(String)
CSVHelper.create(int[])
HTMLHelper.clean(String)
...