Это S из SOLID : Единая ответственность.
thread олицетворяет текущий контекст (как в контексте выполнения: стек стека, идентификатор потока и т. д.) асинхронного выполнения части код. То, что кусок кода в идеале должен быть одной и той же реализацией, будь то синхронный или асинхронный .
Если вы объедините их вместе в одна реализация, вы даете результирующему объекту две несвязанные причины изменения:
Если используемый вами язык поддерживает частичные классы или множественное наследование, вы можете разделить каждую причину в своем собственном суперклассе, но это сводится к тому же, что и составление двух объектов, поскольку их наборы функций не перекрываются. Это для теории.
На практике, вообще говоря, программе не нужно выполнять больше сложностей, чем необходимо. Если у вас есть один поток, работающий над конкретной задачей, без изменения этой задачи, вероятно, нет смысла делать задачи отдельными классами, а ваш код будет проще.
В контексте Java , поскольку средство уже существует, возможно, легче начать прямо с самостоятельных классов Runnable
и передать свои экземпляры в Thread
(или Executor
) экземпляров. Как только использовал для этого шаблона, его труднее использовать (или даже читать), чем простой исполняемый поток.
Вы можете использовать @import css, как описано в этом ответе , на другой вопрос о SO.
Включить правило внутри элемента style в shadow tree .
<style>
@import url( '/css/external-styles.css' )
</style>
Обратите внимание, что комбинатор >>> все еще является частью черновика модуля CSS.
Ну, @import не является решением, если вы работаете с веб-компонентом библиотеки, который вы не можете изменить ...
Наконец, я нашел несколько способов сделать это:
1) Каскадирование. Элементы хоста Shadow DOM также влияют на элементы DOM DOM. Не вариант, если вам нужно стилизовать определенный элемент Shadow DOM, а не каждый.
2) Пользовательские свойства https://www.polymer-project.org/1.0/docs/devguide / styling Если автор веб-компонента предоставил такую информацию.
3) В Polymer у пользовательских миксенов также есть https://www.polymer-project.org/1.0/ docs / devguide / styling
4) @import, но только для компонентов небиблиотеки
Таким образом, существует несколько возможностей, но все они ограничены. Нет достаточно мощного способа внешнего стиля, как: тень.